所以我有一系列对象......
var array = [
{'name':'Jack', 'age':'30', 'weight':'200'},
{'name':'Ted', 'age':'27', 'weight':'180'},
{'name':'Ed', 'age':'25', 'weight':'200'},
{'name':'Bill', 'age':'30', 'weight':'250'}
]
...我知道我可以根据年龄使用升序排序......
array.sort(function(a, b) {
return (a.age) - (b.age);
});
鉴于这一切,只有当两个不同对象的年龄相同时,如何才能按第二个参数排序?例如,在我的对象中," array.name = Jack"和" array.name = Bill"年龄相同的30岁。我怎么能进去并确保杰克会在比尔面前来,因为杰克体重较轻?
答案 0 :(得分:5)
您可以使用logical OR ||
operator链接添加其他排序条件。
在相同年龄的情况下,差异为零(假值),第二部分进行评估。
此方法允许添加更多排序条件。
var array = [{ name: 'Jack', age: '30', weight: '200' }, { name: 'Ted', age: '27', weight: '180' }, { name: 'Ed', age: '25', weight: '200' }, { name: 'Bill', age: '30', weight: '250' }];
array.sort(function (a, b) {
return a.age - b.age || a.weight - b.weight;
});
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }