我在 webkit 浏览器中对数组进行排序时遇到问题。在 Firefox 中,排序效果很好,但在 chrome 或 safari 中,它仅对我的最后一个 if() 语句进行排序。例如,在此代码中,它仅对这个 block 进行排序: (if条件经过测试并且有效)
if(printCategory == printCategoryTour)
{
function compare (a, b) {
return b.tour_naechtigungen - a.tour_naechtigungen
};
chartDataRegions.sort(compare);
pushValues();
}
在此功能上:
function chartDataSortArray()
{
arraySorted = [];
if(printCategory == printCategoryBev)
{
function compare (a, b) {
return b.bev - a.bev;
};
chartDataRegions.sort(compare);
pushValues();
}
if(printCategory == printCategoryWirt)
{
function compare (a, b) {
return b.wirt_unt_anzahl - a.wirt_unt_anzahl
};
chartDataRegions.sort(compare);
pushValues();
}
if(printCategory == printCategoryMob)
{
function compare (a, b) {
return b.mob_einpendler - a.mob_einpendler
};
chartDataRegions.sort(compare);
pushValues();
}
if(printCategory == printCategoryTour)
{
function compare (a, b) {
return b.tour_naechtigungen - a.tour_naechtigungen
};
chartDataRegions.sort(compare);
pushValues();
}
function pushValues()
{
for(i = 0; i<chartDataRegions.length; i++)
{
arraySorted.push(chartDataRegions[i])
}
}
嗯,我现在尝试了 2 个小时,但我无法让它工作! 有人发现问题了吗?
最佳答案
设置一次比较功能! 它看起来更好并且可以跨浏览器工作
function chartDataSortArray()
{
arraySorted = [];
function compare (a, b) {
if(printCategory == printCategoryBev)
{
return b.bev - a.bev;
}
if(printCategory == printCategoryWirt)
{
return b.wirt_unt_anzahl - a.wirt_unt_anzahl;
}
if(printCategory == printCategoryMob)
{
return b.mob_einpendler - a.mob_einpendler
}
if(printCategory == printCategoryTour)
{
return b.tour_naechtigungen - a.tour_naechtigungen
}
};
function pushValues()
{
for(i = 0; i<chartDataRegions.length; i++)
{
arraySorted.push(chartDataRegions[i])
}
}
chartDataRegions.sort(compare);
pushValues();
}
关于javascript - 在 webkit 浏览器中对数组进行排序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28677145/