javascript - 对具有重复值的数组中的对象进行排序

标签 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'}
]

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

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/

相关文章:

javascript - 递归 JS 函数列出 Hx HTML 标签?

c - 为什么重新分配不起作用

arrays - 算法 - 找到中心索引

Java 多维数组初始值设定项

database - 复制稳定 sortKey 的概念

java - 按自定义对象的成员之一对 ArrayList 进行排序

python - Pandas to_datetime 无法按格式 %d.%m.%Y 的方式工作

javascript - React Native 找不到模块

javascript - http请求js和css文件

javascript - 通过单击在 jquery 中的表中读取 div 元素值