我有2个数组,我只需要显示与第一个数组匹配的数据。
示例
第一个数组就像
["1", "2" , "3"]
秒就像
[{"name": "xyz", "id": "1"},{"name":"abc", "id": "3"}, ,{"name":"def", "id": "4"}]
结果
[{"name": "xyz", "id": "1"},{"name":"abc", "id": "3"}}
我尝试这样,但显示空数组
console.log(this.secondArr.filter(d => d.id === firstArr));
答案 0 :(得分:5)
您需要将其与数组中的每个条目进行比较,而不是与数组本身进行比较:
this.secondArr.filter(d => firstArray.some(arrEntry => arrEntry === d.id))
答案 1 :(得分:0)
您也可以使用indexOf
。
var firstArr = ["1", "2" , "3"];
var secondArr = [{"name": "xyz", "id": "1"},{"name":"abc", "id": "3"}, ,{"name":"def", "id": "4"}];
console.log(secondArr.filter(d => firstArr.indexOf(d.id) >= 0));