📅  最后修改于: 2023-12-03 15:02:26.955000             🧑  作者: Mango
在JavaScript中,可以使用sort()
方法对数组中的元素进行排序。默认情况下它按照字母顺序排序,但是当您想要按某些其他参数进行排序时,您需要使用sort()
方法的回调函数。回调函数接受两个参数,并将它们分配给两个相邻的数组元素。按照正数、零、负数相应地排列两个元素。
我们可以用这个想法来进行对象的排序。回调函数函数接受两个对象作为参数,然后根据这些对象中的特定属性/属性的值来比较它们。以下是如何按降序排序包含对象的数组:
// 创建包含多个对象的数组
var employees = [
{ name: "John", age: 25, position: "Developer", salary: 60000 },
{ name: "Mike", age: 32, position: "Manager", salary: 75000 },
{ name: "Sonia", age: 27, position: "Designer", salary: 80000 },
{ name: "Bob", age: 19, position: "Intern", salary: 40000 }
];
// 通过 salary 属性对数组进行排序(降序)
employees.sort(function(a,b){
return b.salary - a.salary;
});
// 输出排序后的结果
console.log(employees);
/* 输出:
[
{ name: 'Sonia', age: 27, position: 'Designer', salary: 80000 },
{ name: 'Mike', age: 32, position: 'Manager', salary: 75000 },
{ name: 'John', age: 25, position: 'Developer', salary: 60000 },
{ name: 'Bob', age: 19, position: 'Intern', salary: 40000 }
]
*/
上面的代码将按降序按照salary
属性来排序employees
数组。注意sort()
方法的回调函数返回b.salary - a.salary
,这意味着b
对象的salary
比a
对象的salary
更高,因此b
应该排在a
之前。