我有2 arrays
,我想根据列值过滤数据。我使用下面的代码,但它无法正常工作。
const result = data.map(data1 => {
return Object.assign({}, data1, this.data2.filter(data2 => data2.Id !== data1.Id)[0]);
});
数据1:
[
{
"id": 2,
"name": "data 2",
},
{
"id": 3,
"name": "data 3",
}
]
数据2:
[
{
"id": 2,
"name": "data 2"
},
{
"id": 3,
"name": "data 3"
},
{
"id": 4,
"name": "data 4"
}
]
它应该返回低于输出。
[
{
"id": 4,
"name": "data 4"
}
]
我该如何解决这个问题?
答案 0 :(得分:6)
您要查找的是2个对象数组的差异,请参阅:Difference between two array of objects in JavaScript
您还可以使用以下纯粹的ID:
let ids = data1.map(item => item.id);
let filteredData = data2.filter(item => ids.indexOf(item.id) === -1);