基于值

时间:2017-11-17 20:59:50

标签: javascript arrays sorting javascript-objects

我有一组带有嵌套数组对象的对象。

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

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

1 个答案:

答案 0 :(得分:0)

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

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