我有 2 个数组,我想用另一个数组过滤其中一个数组。
2个这样设计的数组
array1= [{id:23},{id:11},{id:435}]
array2= [23, 435, 5]
只有当 array1 中对象的 id 等于 array2 中的一个 id(字符串值)时,我才想检查并获取项目
我找到了一个像这样的简单解决方案
var filtered=[1,2,3,4].filter(function(e){return this.indexOf(e)<0;},[2,4]);
但我的情况有点不同,我不知道如何制作返回部分,如何获取每个数组的索引?
var filtered=array1.filter(function(e){return e.id === ??},array2);
最佳答案
您可以使用 id
属性查找索引。
var array1 = [{ id: 23 }, { id: 11 }, { id: 435 }],
array2 = [23, 435, 5],
filtered = array1.filter(function (o) {
return array2.indexOf(o.id) > -1;
});
console.log(filtered);
ES6
var array1 = [{ id: 23 }, { id: 11 }, { id: 435 }],
array2 = [23, 435, 5],
filtered = array1.filter(({ id }) => array2.includes(id));
console.log(filtered);
关于javascript - 使用带有字符串的另一个数组过滤带有对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50377362/