javascript - 检查一个数组是否包含在对象内部的另一个数组中

标签 javascript filter

我正在努力尝试让(我认为很简单的)过滤器工作。

我有一个对象数组:

data: 
  {
    0: {key: 'abc', name: ['bob', 'john', 'steve']},
    1: {key: 'def', name: ['bob']}
   }

我正在尝试用一个数组来过滤对象数组:

filter: ['bob', 'john']

通过使用:

data.filter(v => v.name.includes(filter))

在上面,我希望返回 data[0],如果我将过滤器更改为 filter: ['bob'],那么将返回 data[0,1]。

不幸的是,没有返回任何东西 - 我似乎不太明白 - 这可能很简单,但任何见解都将不胜感激!

最佳答案

假设一个数组作为数据,您可以通过获取 name 数组进行过滤,并根据该数组检查每个过滤项。

var data = [{ key: 'abc', name: ['bob', 'john', 'steve'] }, { key: 'def', name: ['bob'] }],
    filter = ['bob', 'john'],
    result = data.filter(({ name }) => filter.every(f => name.includes(f)));

console.log(result);

关于javascript - 检查一个数组是否包含在对象内部的另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58306933/

相关文章:

javascript - 将当前 URL 复制到剪贴板

python - 将过滤器函数转换为Python代码

url - 如何不使用 react-admin 更改列表过滤的 url?

arrays - Swift 中的数组操作和重新排序

javascript - Leaflet:在 GeoJSON 层中使用动态过滤器

javascript - 使用 async/await 而不是 Promise 来处理在 Javascript 中加载图像

javascript - 有人可以解释这段代码是如何工作的吗?

javascript - 单击 jQuery addClass 时的表行不适用于 Bootstrap

regex - SPARQL:组合和排除正则表达式过滤器

javascript - 需要禁用 JSP 中复选框名称与隐藏字段相同的复选框