所以我有一个对象数组...
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 岁。我如何进入并绝对确保 Jack 会在 Bill 之前出现,因为 Jack 的年龄较低重量?
最佳答案
您可以使用 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; }
关于javascript - 对具有重复值的数组中的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40854416/