2016-04-04 134 views
0

我有对象的数组:如何按对象两个值排序对象数组?

[{ 
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 

回答

1

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

+0

谢谢。知道我怎样才能排序所有'角色'的价值是[[0,0]'改变按'用户名'ASC排序? –

+0

@DavidLences欢迎您,我很乐意为您提供帮助,您应该详细了解[sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/数组/排序)功能。 – isvforall