假设我们有一个包含对象的数组,每个对象都有多个属性。我们想要按照多个属性对数组进行排序。
一个常见的解决方法是使用JavaScript的sort()方法结合自定义比较函数来进行排序。比较函数将返回一个数字,以确定两个元素的顺序。
首先,我们需要定义一个自定义比较函数。在该函数中,我们可以使用JavaScript的逻辑运算符(如&&,||)来分别比较多个属性。这里的示例将数组按照“age”和“name”进行排序:
function compare(a, b) { if (a.age < b.age) { return -1; } else if (a.age > b.age) { return 1; } else { if (a.name < b.name) { return -1; } else if (a.name > b.name) { return 1; } else { return 0; } } }
然后,我们可以使用该函数来对数组进行排序:
array.sort(compare);
这将按照我们指定的属性对数组进行排序。
下面是一个完整的示例:
const array = [ { name: 'John', age: 25 }, { name: 'Jane', age: 30 }, { name: 'John', age: 20 }, { name: 'Jane', age: 25 } ];
function compare(a, b) { if (a.age < b.age) { return -1; } else if (a.age > b.age) { return 1; } else { if (a.name < b.name) { return -1; } else if (a.name > b.name) { return 1; } else { return 0; } } }
array.sort(compare);
console.log(array);
该代码将输出以下结果:
[ { name: 'John', age: 20 }, { name: 'Jane', age: 25 }, { name: 'John', age: 25 }, { name: '
上一篇:按多个值筛选列表
下一篇:按多个字段对多维数组进行排序