📌  相关文章
📜  JavaScript程序按属性值对对象数组进行排序

📅  最后修改于: 2020-09-27 05:30:52             🧑  作者: Mango

在此示例中,您将学习编写一个JavaScript程序,该程序将按属性值对对象数组进行排序。

示例1:按属性名称对数组排序
// program to sort array by property name

function compareName(a, b) {

    // converting to uppercase to have case-insensitive comparison
    let name1 = a.name.toUpperCase();
    let name2 = b.name.toUpperCase();

    let comparison = 0;

    if (name1 > name2) {
        comparison = 1;
    } else if (name1 < name2) {
        comparison = -1;
    }
    return comparison;
}

let 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()方法用于按其对象元素的名称属性对数组进行排序。

sort()方法根据自定义排序函数 (在这种情况下为compareName )返回的值对元素进行排序。

这里,

  • 使用toUpperCase()方法将属性名称更改为大写。
  • 如果比较两个名称的结果为1 ,则它们的顺序将更改。
  • 如果比较两个名称的结果为-1或0 ,则它们的顺序保持不变。

示例2:按属性年龄对数组排序
// program to sort array by property name

function compareAge(a, b) {

    return a.age - b.age;
}

let 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属性对数组元素进行排序。

为了比较两个对象的年龄属性,我们可以简单地将它们相减。

  • 如果它们的差为负值,则它们的顺序将更改。
  • 如果它们的差为正值,则顺序保持不变。