js 根據json數組中多個字段排序


排序

 function compare(name, minor) {
        return function (o, p) {
            var a, b;
            if (o && p && typeof o === 'object' && typeof p === 'object') {
                a = o[name];
                b = p[name];
                if (a === b) {
                    return typeof minor === 'function' ? minor(o, p) : 0;
                }
                if (typeof a === typeof b) {
                    return a < b ? -1 : 1;
                }
                return typeof a < typeof b ? -1 : 1;
            } else {
                thro("error");
            }
        }
    }
data: [{
        name: '李尋歡',
        age: 32,
        rank: 1
    },
    {
        name: '謝曉峰',
        age: 28,
        rank: 4
    },
    {
        name: '瀟十一郎',
        age: 27,
        rank: 5
    },
    {
        name: '楚留香',
        age: 29,
        rank: 3
    },
    {
        name: '傅紅雪',
        age: 35,
        rank: 2
    }
]
//先根據rank排序,再根據age排序,最后根據name排序
   data.sort(compare('rank', compare('age', compare('name'))));

轉自:https://www.cnblogs.com/zuochengsi-9/p/8492897.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM