📅  最后修改于: 2023-12-03 15:31:43.207000             🧑  作者: Mango
在 JavaScript 中,我们可以使用内置的 sort()
方法对数组进行排序,但是数组中有时候可能包含多个对象,而我们需要根据对象的某个属性进行排序。
我们可以使用 sort()
方法结合比较函数来对包含对象的数组进行排序。比较函数会接收两个参数,我们需要根据这两个参数的某个属性进行比较,然后返回比较结果。如果第一个参数比第二个参数小,则返回负数,如果相等则返回 0,如果大于则返回正数。
下面是一个简单的比较函数例子:
function compare(a, b) {
if (a.age < b.age) {
return -1;
}
if (a.age > b.age) {
return 1;
}
return 0;
}
这个比较函数会根据对象的 age
属性进行比较。
现在我们可以使用 sort()
方法和比较函数来对包含对象的数组进行排序了。假设我们有一个包含多个对象的数组 people
,我们可以使用以下代码对它们按照 age
属性进行升序排序:
people.sort(compare);
我们也可以根据其他属性进行排序,只需要修改比较函数中的比较条件即可。
下面是一个完整的例子代码,它会创建一个包含多个对象的数组 people
,然后按照 age
属性进行排序,最后输出排序后的数组对象:
const people = [
{ name: 'John', age: 25 },
{ name: 'Mary', age: 20 },
{ name: 'Bob', age: 30 },
];
function compare(a, b) {
if (a.age < b.age) {
return -1;
}
if (a.age > b.age) {
return 1;
}
return 0;
}
people.sort(compare);
console.log(people);
输出结果应该是:
[
{ name: 'Mary', age: 20 },
{ name: 'John', age: 25 },
{ name: 'Bob', age: 30 }
]
使用比较函数可以方便地对包含对象的数组进行排序。我们只需要根据对象的某个属性写出比较函数,然后通过 sort()
方法将数组进行排序即可。