我想按多个字段对对象数组进行排序(在我的例子中是3-4)。object的一些值可能是undefined,并且这些值必须总是在排序中“靠前”(升序和降序)。在我的例子中,当排序是降序时一切都工作,但是在升序的情况下,未定义总是在底部。这些值的类型总是字符串,我只能调用.sort()方法之前和之后没有任何内容。我的代码如下所示:
[{id: "1", label: "Z", code: "Z"},
{id: "1", code: "A"},
{id: "2", label: "A",},
{id: "3", label: "A", code: "A"}]
.sort((a,b) => {
return a.id.localeCompare(b.id)
|| a.label.localeCompare(b.label)
|| a.code.localeCompare(b.code)
);
1条答案
按热度按时间bjp0bcyl1#
只需编写自己的比较函数。
0
表示它们相同,正数表示b
应该优先,负数表示a
应该优先。