2016-04-04 19 views
0

私は、オブジェクトの配列を持っている:オブジェクトの配列をオブジェクトの2つの値で並べ替える方法は?

[{ 
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]'の 'roles 'をどのように並べ替えることができるか知っています。 –

+0

@DavidLencesようこそ、私はあなたを助けてくれることを嬉しく思っています。[sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/配列/ソート)関数。 – isvforall

関連する問題