【发布时间】:2018-02-17 18:20:14
【问题描述】:
我有一个包含服务 ID 的数组 activeIds,还有一个包含服务对象的数组 servicesList。
示例:-
activeIds = [202, 204]
serviceList = [{
"id":201,
"title":"a"
},
{
"id":202,
"title":"a"
},
{
"id":203,
"title":"c"
},
{
"id":204,
"title":"d"
},
{
"id":205,
"title":"e"
}];
我想要所有 id 不属于第一个数组的服务(obj),即activeIds。从上面的示例代码 我想要 id 为 201,203,205 的服务 obj
最终输出 -
expectedArray = [{
"id":201,
"title":"a"
},
{
"id":203,
"title":"c"
},
{
"id":205,
"title":"e"
}];
这是我的编码尝试。但这根本不正确。请帮忙-
const activeIds = e; // [202, 204]
const obj = [];
this.serviceList.map((s: IService) => {
activeIds.map((id: number) => {
if (id !== s.id) {
obj.push(s);
}
});
});
【问题讨论】:
-
如果 id 数组很长,我建议您将其转换为对象查找或映射,以避免在数组中对每个元素进行线性搜索。否则,使用 array.filter 函数就像下面每个答案中建议的那样。
标签: javascript arrays angular object