如何按对象两个值对对象数组进行排序

How to sort Array of Objects by Object two values?

本文关键字:对象 数组 排序 何按 两个      更新时间:2023-12-09

我有一个对象数组:

[{
 user: "userName1",
 roles: [7,4]
},
{
 user: "userName2",
 roles: [0,3]
},
{
 user: "userName4",
 roles: [7,2]
},
{
 user: "userName3",
 roles: [6,5]
}]

我需要按roles对这个数组进行排序。首先是roles[0],然后是roles[1]

我的结果必须这样排序:

0. userName1
1. userName4
2. userName3
3. userName2

var data = [{ user: "userName1", roles: [7,4] }, { user: "userName2", roles: [0,3] }, { user: "userName4", roles: [7,2] }, { user: "userName3", roles: [6,5] }];
data.sort(function(a,b) {
    if(a.roles[0] == b.roles[0]) return b.roles[1] - a.roles[1];
    return b.roles[0] - a.roles[0];
});
document.write('<pre>'+JSON.stringify(data,0,2) + '</pre>');