【发布时间】:2021-04-14 18:32:24
【问题描述】:
我有关注
let arr = [
{ id: 1, referenceId: 1, type: "normal", name: "a" },
{ id: 2, referenceId: 1, type: "normal", name: "b" },
{ id: 3, referenceId: 3, type: "chat", name: "c" },
{ id: 4, referenceId: 4, type: "normal", name: "d" },
{ id: 5, referenceId: 5, type: "chat", name: "e" },
{ id: 6, referenceId: 3, type: "chat", name: "f" }
];
我想要如下输出:
[
{ id: 1, referenceId: 1, type: "normal", name: "a" },
{ id: 2, referenceId: 1, type: "normal", name: "b" },
{ id: 4, referenceId: 4, type: "normal", name: "d" },
{ id: 5, referenceId: 5, type: "chat", name: "e" },
{ id: 6, referenceId: 3, type: "chat", name: "f" }
];
我想排序 if type === "chat", 试试这样(type === "normal", no sort) :
arr.filter(item => {
if (item.type === "normal") {
return item
}
//sort array by referenceId and keeping last item
})
【问题讨论】:
-
欢迎来到 SO!我对
filter回调中的逻辑有点困惑。item.type === "normal"与您的规范的其余部分有什么关系? -
只排序 type === "chat", if type === "normal" 不排序
标签: javascript arrays typescript sorting