示例 1: 按属性名称对数组进行排序
// program to sort array by property name function compareName(a, b) { // converting to uppercase to have case-insensitive comparison const name1 = a.name.toUpperCase(); const name2 = b.name.toUpperCase(); let comparison = 0; if (name1 > name2) { comparison = 1; } else if (name1 < name2) { comparison =-1; } return comparison; } const students = [{name: 'Sara', age:24},{name: 'John', age:24}, {name: 'Jack', age:25}]; console.log(students.sort(compareName));
输出
[{name: "Jack", age: 25}, {name: "John", age: 24}, {name: "Sara", age: 24}]
在上面的程序中,
sort()
方法用于根据数组对象元素的
name属性对数组进行排序。
sort()
方法根据自定义排序函数(在本例中为
compareName)返回的值对其元素进行排序。
这里,
使用 toUpperCase()
方法将属性名称更改为大写。
如果比较两个名字的结果是 1,那么它们的顺序就会改变。
如果比较两个名称的结果为 -1 或 0,则它们的顺序保持不变。
示例 2: 按属性年龄对数组进行排序
// program to sort array by property name function compareAge(a, b) { return a.age-b.age; } const students = [{name: 'Sara', age:24},{name: 'John', age:22}, {name: 'Jack', age:27}]; console.log(students.sort(compareAge));
输出
[{name: "John", age: 22}, {name: "Sara", age: 24}, {name: "Jack", age: 27}]
在上面的程序中,
sort()
方法用于通过
age属性对数组元素进行排序。
要比较两个对象的
age 属性,我们可以简单地将它们相减。
如果它们的差为负值,则它们的顺序会发生变化。
如果它们的差为正值,则顺序保持不变。