Javascript教程
JavaScript基础
JavaScript Objects
JavaScript BOM
JavaScript DOM
JavaScript OOP
JavaScript Cookies
JavaScript事件
JavaScript异常
JavaScript常用

JavaScript 程序按属性值对对象数组进行排序

用于按属性值对对象数组进行排序的 JavaScript 程序

在本例中,您将学习编写一个 JavaScript 程序,该程序将按属性值对对象数组进行排序。
要理解此示例,您应该了解以下JavaScript 编程主题:
JavaScript 数组排序() JavaScript 数组 JavaScript 对象

示例 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 属性,我们可以简单地将它们相减。
如果它们的差为负值,则它们的顺序会发生变化。 如果它们的差为正值,则顺序保持不变。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4