javascript - 检查一个数组是否包含在对象内的另一个数组中
问题描述
我正在努力尝试让(我虽然很简单)过滤器工作。
我有一个对象数组:
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);
推荐阅读
- sockets - 所有计算机都可以打开 TCP/IP 套接字吗?
- javascript - 在 react-router v4 的嵌套路由中看到空白页
- javascript - jQuery $.post 方法导致 405(不允许)错误
- linux - Linux 页面替换算法与页面帧回收算法
- ios - 如何使用 MVVM 和 RxSwift 编辑/删除 UICollectionView 单元格
- python-3.x - 使用 while 循环无限期地重新分配变量,直到该变量不再属于列表?
- java - 这两个循环不应该产生相同的结果吗?
- python - 如何在 VScode Jupyter 中禁用自动格式化 HTML?
- javascript - React 组件的状态在渲染中的值与 setState 中的值不同
- ruby-on-rails - 从 crontab 运行 rake 任务