如何在TypeScript中通过匹配键值相似性将对象分组



我正在构建一个Angular应用程序。我必须根据对象的URI值将其拆分为不同的对象,以便稍后在扩展复选框解决方案中使用(能够从组中选择All或特定的(。我目前正在处理将对象拆分为多个组的问题。

StackBlitz数据示例

根据'/v2/'之后的uri部分,将它们放入数组中最有效的方法是什么?

这是您可以遵循的两个可能的解决方案。第一个只在数组上迭代一次,所以我认为这可能是最好的方法:

this.items.forEach((elem) => {
if (elem.uri.startsWith('/v2/information/')) {
this.groupInformation.push(elem);
} else if (elem.uri.startsWith('/v2/payments/')) {
this.groupPayments.push(elem);
} else if (elem.uri.startsWith('/v2/menu/')) {
this.groupMenu.push(elem);
} else {
// Do something else
}
});

这里有另一种选择:

this.groupInformation = this.items.filter((elem) =>
elem.uri.startsWith('/v2/information/')
);
this.groupPayments = this.items.filter((elem) =>
elem.uri.startsWith('/v2/payments/')
);
this.groupMenu = this.items.filter((elem) =>
elem.uri.startsWith('/v2/menu/')
);

你可以在这里查看

最新更新