繁体   English   中英

在Webkit浏览器中对数组进行排序的问题

[英]Issue to sort array in webkit browsers

在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个小时,但我没有使它正常工作! 有人找到问题了吗?

一次设置比较功能! 看起来更好,可以跨浏览器使用

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();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM