javascript - 按两个值对数组进行排序

标签 javascript arrays sorting

Possible Duplicate:
Simple function to sort an array of objects

在编写脚本时,对数组进行排序时出现问题。 我有一个对象数组:

[{gold: false, range: 1601}, {gold: true, range: 13}, {gold: false, range: 375}, {gold: true, range: 601}

但它应该看起来像这样:

[{gold: true, range: 13}, {gold: true, range: 601}, {gold:false, range: 375}, {gold: false, range: 1601}]

我想获得一个数组,其中键按范围递增排序。但如果 key 匙值是真的,那么他们就是第一。

最佳答案

使用这样的东西:

yourArray.sort(function(a, b){
    return a["gold"] == b["gold"] ? a["range"] - b["range"] : a["gold"] ? -1 : 1;
});

甚至是这样:

yourArray.sort(function(a, b){
    return  b["gold"] - a["gold"] || a["range"] - b["range"];
});

第二种方法实际上非常酷))您可以将此模式用于对象中的任意数量的字段,只需按其重要性对它们进行排序即可。如果某个字段应按升序排序 - 则为 a["..."] - b["...],如果为降序排序 - 则为 b["..."] - a["..."]

关于javascript - 按两个值对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081616/

相关文章:

sorting - Elasticsearch使用脚本对日期桶进行排序

javascript - Maven 元素中的 CSS 和 JS 文件位置

javascript - 为什么 JavaScript 不为此代码示例抛出异常?

arrays - 根据排序列表和升序打印数组值

ios - 按日期对自定义对象数组进行排序和分段

sorting - 我们真的需要在 MapReduce 框架中进行排序吗?

javascript - 如何捕获带有可选数量的字母/数字后跟可选逗号的组?

javascript - nodeJS 中的 JSDOM : How do I get back the manipulated html?

java - 根据奇怪的协议(protocol)将整数放入字节数组

java - 如何对数据表中的列进行排序。 JSF 2.0