js 根据json数组中n个字段排序


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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM