javascript - 使用带有字符串的另一个数组过滤带有对象的数组

标签 javascript arrays filter

我有 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/

相关文章:

javascript - jQuery next 方法替代

javascript - 如何对数组日期 JavaScript dd/mm/yyyy 进行排序?

php - 使用 PHP 对关联数组进行数据库查询

arrays - 运行 Ruby 冒泡排序

PHP查找多维数组的数组索引键更新数组

python - django 在一个查询集所有和过滤方法中

javascript - JavaScript中的Monad

javascript - 如何在 linux 上安装 electron.js?

java - 我可以指定与过滤器的 hibernate 关系吗?

forms - 如何在 symfony2 中使用 Lexik Form Filter bundle 过滤日期?