在 webkit 浏览器中对数组进行排序的问题
Issue to sort array in webkit browsers
我在 webkit 浏览器中对数组进行排序时遇到问题。在 firefox 中,排序效果很好,但在 chrome 或 safari 中,它只对我最后的 if() 语句进行排序。例如,在这段代码中,它只对这个块进行排序:
(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();
}
我在 webkit 浏览器中对数组进行排序时遇到问题。在 firefox 中,排序效果很好,但在 chrome 或 safari 中,它只对我最后的 if() 语句进行排序。例如,在这段代码中,它只对这个块进行排序: (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();
}