首页 >web前端 >js教程 >如何按特定属性值(例如价格)对 JavaScript 对象数组进行排序?

如何按特定属性值(例如价格)对 JavaScript 对象数组进行排序?

Barbara Streisand
Barbara Streisand原创
2024-12-24 00:32:09387浏览

How to Sort an Array of JavaScript Objects by a Specific Property Value (e.g., Price)?

在 JavaScript 中按属性值对对象进行排序

处理对象数组时,按特定属性值对它们进行排序对于管理和可视化至关重要数据。让我们探索如何使用 JavaScript 实现此排序功能。

问题:

给定一个表示家庭数据的对象数组,我们如何创建一个函数来对它们进行排序他们的“价格”属性是升序还是降序排列?

对象数组:

考虑以下homes数组:

var homes = [
    {
        "h_id": "3",
        "city": "Dallas",
        "state": "TX",
        "zip": "75201",
        "price": "162500"
    }, {
        "h_id": "4",
        "city": "Bevery Hills",
        "state": "CA",
        "zip": "90210",
        "price": "319250"
    }, {
        "h_id": "5",
        "city": "New York",
        "state": "NY",
        "zip": "00010",
        "price": "962500"
    }
];

排序函数:

要对homes数组进行排序,我们可以使用内置的 sort() 方法。此方法需要一个比较函数作为其参数。比较函数采用两个元素作为输入,如果第一个元素应该在第二个元素之前,则返回负数;如果第二个元素应该在第一个元素之前,则返回正数;如果元素被认为相等,则返回零。

升序:

要按价格升序对房屋进行排序,我们定义一个比较函数,该函数从第一个元素的价格中减去第一个元素的价格第二个元素并比较差异。如果差值为负数,则表示第一个元素的价格小于第二个元素的价格,并且第一个元素应该在第二个元素之前。

homes.sort(function(a, b) {
    return parseFloat(a.price) - parseFloat(b.price);
});

或者在 ES6 语法中:

homes.sort((a, b) => parseFloat(a.price) - parseFloat(b.price));

降序:

对于降序,我们可以通过减去来反转比较函数第一个元素的价格中第二个元素的价格。

homes.sort((a, b) => parseFloat(b.price) - parseFloat(a.price));

结果:

排序后,homes 数组将根据指定的值进行排序命令。您可以打印修改后的数组来验证排序。

以上是如何按特定属性值(例如价格)对 JavaScript 对象数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn