假设我有以下格式的数据:
[
{
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
排序呢?如何做到这一点?
答案 0 :(得分: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);
});