javascript - 在 webkit 浏览器中对数组进行排序的问题

标签 javascript arrays google-chrome sorting firefox

我在 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/

相关文章:

javascript - 如何从textarea ejs文件中获取数据库的数组?

JavaScript 通过索引抓取对象/json

google-chrome - 将 SSML 与 Web Speech API 结合使用的正确方法

html - Facebook 通知如何在 Android 手机的 Google Chrome 上运行

javascript - 开发小书签时需要考虑哪些设计和安全注意事项?

javascript - React 通过函数创建菜单项

javascript - 如何防止在 javascript 警报点击之前重定向页面?

javascript - postman - 我想检查一个值是否在数组内

javascript - 如何检查一个单词在 Javascript 中的数组中出现的次数

google-chrome - 将图标添加到多功能框的 Chrome 扩展程序