使用重复值对Array中的对象进行排序

DS_*_*DS_ 1 javascript arrays sorting object multidimensional-array

所以我有一系列的对象......

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'}
]
Run Code Online (Sandbox Code Playgroud)

...我知道我可以根据他们的年龄按升序排序......

array.sort(function(a, b) {
    return (a.age) - (b.age);
});
Run Code Online (Sandbox Code Playgroud)

鉴于这一切,只有当两个不同对象的年龄相同时,如何通过第二个参数进行排序?例如,在我的对象中,"array.name = Jack"和"array.name = Bill"都具有相同的30岁.我怎样才能进入并确保Jack会来到Bill之前,因为Jack有较低的重量?

Nin*_*olz 5

您可以使用逻辑OR ||运算符链接添加另一个排序条件.

在相同年龄的情况下,差异为零(假值),第二部分进行评估.

此方法允许添加更多排序条件.

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);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }
Run Code Online (Sandbox Code Playgroud)