📅  最后修改于: 2023-12-03 14:42:32.209000             🧑  作者: Mango
当在JavaScript中操作对象数组时,我们可能需要根据某些属性对数组进行排序。这可以使用内置的sort()方法来实现。sort()方法接受一个比较函数作为参数,该函数定义了排序算法并返回比较结果。
const arr = [
{ name: "John", age: 20 },
{ name: "Mary", age: 25 },
{ name: "Peter", age: 18 }
];
arr.sort(function(a, b) {
if (a.age < b.age) {
return -1;
}
if (a.age > b.age) {
return 1;
}
return 0;
});
console.log(arr);
以上代码将根据对象中的age属性按升序排序。
我们也可以根据其他属性进行排序,只需要在比较函数中修改比较的属性即可。
const arr = [
{ name: "John", age: 20 },
{ name: "Mary", age: 25 },
{ name: "Peter", age: 18 }
];
arr.sort(function(a, b) {
if (a.name < b.name) {
return -1;
}
if (a.name > b.name) {
return 1;
}
return 0;
});
console.log(arr);
以上代码将根据对象中的name属性按升序排序。
我们也可以根据多个属性进行排序。在比较函数中,我们可以按照优先顺序比较多个属性。
const arr = [
{ name: "John", age: 20 },
{ name: "Mary", age: 25 },
{ name: "Peter", age: 18 }
];
arr.sort(function(a, b) {
if (a.age < b.age) {
return -1;
}
if (a.age > b.age) {
return 1;
}
if (a.name < b.name) {
return -1;
}
if (a.name > b.name) {
return 1;
}
return 0;
});
console.log(arr);
以上代码将根据年龄升序排序,如果年龄相同,则根据姓名升序排序。
总的来说,使用sort()方法按对象数组中的属性排序是一项常见任务,可以根据需要使用比较函数轻松地实现。