-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 に答える