首页 >web前端 >js教程 >如何在 JavaScript 中对多字段数组进行排序?

如何在 JavaScript 中对多字段数组进行排序?

Patricia Arquette
Patricia Arquette原创
2024-12-24 02:18:10530浏览

How to Sort a Multi-Field Array in 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":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699" },
    { "h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500" }
];

多字段排序方法

要基于多个字段进行排序,我们可以使用链式排序方法,该方法涉及一次比较所选字段的值,直到找到一个

实现

data.sort(function (a, b) {
    return a.city.localeCompare(b.city) || b.price - a.price;
});

说明

  • localeCompare 方法用于比较城市值.
  • 如果城市值相等,我们减去价格b 来自 a 的值,以降序对价格进行排序。
  • 结果数组按城市(升序)排序,然后按价格(降序)排序。

输出

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

这种方法为在多个字段上对数组进行排序提供了灵活的解决方案。它可以轻松修改以适应任意数量的排序标准,使其适用于各种数据操作场景。

以上是如何在 JavaScript 中对多字段数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

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