【问题标题】:Sorted array object based on value [duplicate]基于值的排序数组对象[重复]
【发布时间】:2018-05-01 17:38:02
【问题描述】:

我有一个包含嵌套数组对象的对象数组。

[
    {
        "neighborhoods": [
            {
                 "origin": "Kenwood",
                 "destination": "Portage Bay"
            }
        ]
    },
    {
        "neighborhoods": [
             {
                 "origin": "First Hill",
                 "destination": "Denny-Blaine"
              }
        ]
    },
    {
        "neighborhoods": [
            {
                "origin": "Belltown",
                "destination": "Eastlake"
            }
        ]
    }
]

我想根据原始值按字母顺序对对象进行排序。最有效的方法是什么?

【问题讨论】:

  • 在 stackoverflow 上搜索将是最有效的...
  • 如果neighborhoods 包含多个对象,应该使用哪个origin?如果没有neighborhoods 会怎样?

标签: javascript arrays sorting javascript-objects


【解决方案1】:

您可以使用原始值索引为零的属性和对象进行排序。

var array = [{ neighborhoods: [{ origin: "Kenwood", destination: "Portage Bay" }] }, { neighborhoods: [{ origin: "First Hill", destination: "Denny-Blaine" }] }, { neighborhoods: [{ origin: "Belltown", destination: "Eastlake" }] }];

array.sort(function (a, b) {
    function getValue(o) { return o.neighborhoods[0].origin; }
    var aa = getValue(a),
        bb = getValue(b);

    return aa > bb || -(aa < bb);
});

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

【讨论】:

    猜你喜欢
    • 2015-01-23
    • 1970-01-01
    • 2021-04-24
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多