📅  最后修改于: 2023-12-03 15:37:21.980000             🧑  作者: Mango
在 JavaScript 中,我们可以使用 sort()
函数对数组进行排序。当对对象数组进行排序时,我们需要指定根据哪个属性值进行排序。
我们可以使用 sort()
函数加上比较函数来进行排序。比较函数接受两个参数,分别为 a
和 b
,代表需要被比较的两个元素。比较函数需要返回一个数字,表示元素需要被插入到数组中的位置。
const arr = [
{ name: 'John', age: 20 },
{ name: 'Jane', age: 23 },
{ name: 'Bob', age: 18 }
];
arr.sort((a, b) => {
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0;
});
console.log(arr);
// Output:
// [
// { name: 'Bob', age: 18 },
// { name: 'Jane', age: 23 },
// { name: 'John', age: 20 }
// ]
在上面的代码中,我们按 name
属性值对对象数组进行排序。比较函数根据 a.name
和 b.name
的大小来返回数字,如果 a.name
比 b.name
小,返回 -1
,如果相等,返回 0
,否则返回 1
。
我们可以通过修改比较函数来指定升序或降序排序顺序。如果需要升序排序,只需要将返回值反转即可。
arr.sort((a, b) => {
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0;
});
console.log(arr);
// Output:
// [
// { name: 'Bob', age: 18 },
// { name: 'Jane', age: 23 },
// { name: 'John', age: 20 }
// ]
如果需要降序排序,只需要将返回值反转即可。
arr.sort((a, b) => {
if (a.name < b.name) return 1;
if (a.name > b.name) return -1;
return 0;
});
console.log(arr);
// Output:
// [
// { name: 'John', age: 20 },
// { name: 'Jane', age: 23 },
// { name: 'Bob', age: 18 }
// ]
通过 sort()
函数和比较函数,我们可以轻松按字符串属性值对对象数组进行排序。同时,我们也可以通过修改比较函数来指定排序顺序,实现升序或降序排序。