-1

假设我有以下格式的数据:

[
    {
        foo: "a",
        bar: 5,
        baz: [
            "qux doo",
            "adsf",
            "abcd",
            "zzzz",
            "898jwe9"
        ],
    },
            {
        foo: "f",
        bar: 4859,
        baz: [
            "abcd",
            "xxrwu",
            "urnr",
            "pupupu",
            "sdsdsd"
        ],
    },
]

假设我想对这个数组进行排序foo。这很简单:

.sort(function(a, b){ return (a.foo < b.foo) - (a.foo > b.foo); });

但是如果我想按它排序呢baz?如何做到这一点?

4

1 回答 1

0
.sort(function(a, b) {
    for (var i = 0; i < Math.min(a.baz.length, b.baz.length); i++) {
        if (a.baz[i] < b.baz[i]) return -1;
        if (a.baz[i] > b.baz[i]) return 1;
    } 
    return (a.baz.length > b.baz.length) - (a.baz.length < b.baz.length); 
});
于 2013-11-15T00:07:19.400 回答