如何按多个字段对对象数组进行排序?

2024-02-05

由此原问题 https://stackoverflow.com/q/979256/178383,如何对多个字段应用排序?

使用这种稍微调整的结构,我将如何对城市(升序)和价格(降序)进行排序?

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"}
    ];

我喜欢这个事实胜过answer https://stackoverflow.com/questions/979256/how-to-sort-a-json-array/979325#979325给出了一个通用方法。在我计划使用此代码的地方,我将必须对日期以及其他内容进行排序。 “启动”物体的能力似乎很方便,即使不是有点麻烦。

我尝试过构建这个answer https://stackoverflow.com/questions/3230028/how-to-order-a-json-object-by-two-keys/3230748#3230748进入一个很好的通用示例,但我没有太多运气。


您可以使用链式排序方法,获取值的增量,直到其达到不等于零的值。

var data = [{ 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;
});

console.log(data);
.as-console-wrapper { max-height: 100% !important; top: 0; }

或者,使用 es6,简单地:

data.sort((a, b) => a.city.localeCompare(b.city) || b.price - a.price);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按多个字段对对象数组进行排序? 的相关文章

随机推荐

  • MapViewOfFile 返回什么? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么加载程序无法加载到所需位置 https stackoverflow com questions 9698496 why wont the loader load at the desired l
  • 为什么当列包含空字符串时bcp输出null,当列包含空字符串时bcp输出空字符串?

    这让我觉得非常奇怪的行为 在发现这个之前我花了一段时间检查代码中的错误 out 从数据库表或视图复制到文件 如果指定现有文件 则该文件将被覆盖 提取数据时 请注意 bcp 实用程序将空字符串表示为 null 将 null 字符串表示为空字符
  • Excel 搜索包含子字符串的多行

    我有一个包含 2 张纸的 Excel 文件 第一个获得了列中的关键字列表 第二个在一个列上有句子 在另一列上有一个 id 因此 这两张纸看起来像这样 Sheet 1 Sheet 2 A A B the 15587 The cat is wa
  • Gomock无法使用类型map[string]*mockFoo作为map[string]foo

    我正在使用 gomock 并且我有一段希望测试的示例代码 type StructA struct client map string Foo type Foo interface foo methodFoo string func a st
  • 如何从 S3 存储桶中递归删除文件

    我在 S3 中有以下文件夹结构 有没有办法递归删除某个文件夹下的所有文件 比如foo bar1 or foo or foo bar2 1 foo bar1 1 foo bar1 2 foo bar1 3 foo bar2 1 foo bar
  • OnsenUi Angular 和登录

    我正在尝试使用 onsen cordova 开发移动应用程序 我需要的是 当应用程序启动时 它会加载login html页面 如果应用程序检测到用户已登录 则会重定向到 home html 对于每个 受保护的页面 我想调用一个检测用户是否已
  • Mac 版 Java 中的文件输入

    我们现在正在编程课上学习文件输入和输出 但我有一台 Macbook Pro 我了解如何执行此操作 并且可以在 Windows 上执行此操作 但我无法找到如何在 Mac 上执行此操作 我只是似乎不知道在 File Fred new File
  • 如何从 Java 调用 .NET 代码?

    我并不是在寻找像网络服务这样的常见答案 我正在寻找在同一台机器上运行的轻型解决方案 编辑 我正在寻找 Java 中调用 NET 方法的方法 我是作者jni4net http jni4net sf net JVM和CLR之间的开源进程间桥梁
  • 将 AppCompat 主题应用于 PreferenceFragment 中的个人首选项

    我一直在努力争取我的PreferenceFragment与我的应用程序的其余部分具有相同的基于材质的主题和样式 通过 AppCompat 这PreferenceFragment我用来管理所有应用程序设置的工具如下所示 正如您从上面的屏幕截图
  • 如何在布局中包含布局?

    如何在Android布局中包含布局 我正在创建通用布局 我想将该布局包含在另一个页面中 Edit 正如评论中正确要求的更多信息 使用include tag
  • JavaScript 中的匿名函数命名有何不同?

    我正在分析 John Resig 网站上的以下两个 url 但我不明白为匿名函数命名有何不同 我的理解是 赋予匿名函数的名称只能在函数定义内部使用 而不能在函数定义之外使用 但在以下链接中它会产生巨大的差异 http ejohn org a
  • 核心数据:迁移后,额外的迁移代码

    我希望从版本 1 数据模型迁移到版本 2 但迁移完成后我希望执行一些自定义迁移代码 我如何知道迁移是否 何时发生 是否有migrationHasCompleed委托方法或通知 为了兴趣 我希望执行调整数据库中 png 大小的自定义迁移代码
  • 包括函数已知参数的不确定性,以在 python 中使用 curve_fit 进行拟合

    我在Python中使用不确定性包 我有一个像 A x N 这样的函数 其中 N 是一个具有不确定性的固定参数 例如 N 1 0 0 1 我想通过将方程拟合到数据集 y 来获得参数 A 但有错误 yerr 我尝试使用 uncertaintie
  • 两个java库互相导入?

    我正在开发一个遗留框架 显然有两个相互依赖的库 我的意思是libA进口于libB and libB进口于libA 首先我认为这是一个糟糕的设计 但为什么有人会这样做呢 相反 哪些条件可以导致某人写下此内容 edit 每个库都依赖于另一个库中
  • ListTile 的 SelectedTileColor 不起作用

    我有一个ListView其中包含ListTile被选中时会改变颜色 然而 在下面的代码中 当有中间时Container or SizedBox在 之间ListView和Scaffold SelectedTileColor不起作用 我跟着这个
  • Flink 中复杂拓扑(多输入)的集成测试

    我需要为 flink 流拓扑编写单元测试 这基本上是一个CoFlatMapFunction 并且它有 2 个输入 我尝试从这个页面中获得一些灵感 https ci apache org projects flink flink docs s
  • 如何将依赖项传递给@auth0-angular-jwt?

    所以 我正在迁移使用的 旧 代码HttpModule and angular2 jwt lib 以前 我可以做angular2 jwt使用以下配置 export function authHttpServiceFactory http Ht
  • 如何管理同一条记录的多个版本

    我正在为一家公司做短期合同工作 该公司试图为其数据库记录实施签入 签出类型的工作流程 这是它应该如何工作的 用户在应用程序中创建一个新实体 除了主实体表之外 还将填充大约 20 个相关表 创建实体后 用户会将其标记为主实体 另一个用户只能通
  • openssl_seal问题

    我在加载公钥以使用 PHP 中的 openssl seal 函数进行加密时遇到一些问题 我使用 openSSL 命令行工具创建了公钥和私钥 openssl genrsa des3 out private pem 1024 openssl r
  • 如何按多个字段对对象数组进行排序?

    由此原问题 https stackoverflow com q 979256 178383 如何对多个字段应用排序 使用这种稍微调整的结构 我将如何对城市 升序 和价格 降序 进行排序 var homes h id 3 city Dalla