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

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

Patricia Arquette
发布: 2024-12-24 02:18:10
原创
526 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板