我在webkit浏览器中排序数组时遇到了问题。在firefox中,排序工作得非常好,但在chrome或safari中,它只对我的最后一个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个小时,但我没有让它上班! 有人发现了这个问题吗?
答案 0 :(得分:1)
设置比较功能一次! 它看起来更好,并且工作于crossbrowser
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();
}