javascript - 在javascript中过滤二维数组
问题描述
我需要一些帮助来构建一个可以根据“搜索”数组中的数据过滤“数据”数组的函数
data = [
['a1','1','teste1','teste9'],
['a1','2','teste2','teste10'],
['a2','1','teste3','teste11'],
['a2','1','teste4','teste12'],
['a2','1','teste5','teste13'],
['a3','1','teste6','teste14'],
['a3','1','teste7','teste15'],
['a4','1','teste8','teste16']
]
search = [
['a1','AAAA'],
['a4','DDDD']
]
结果:
data = [
['a1','1','teste1','teste9'],
['a1','2','teste2','teste10'],
['a4','1','teste8','teste16']
]
解决方案
您可以Array#filter
与 结合使用Array#some
。
const data = [
['a1','1','teste1','teste9'],
['a1','2','teste2','teste10'],
['a2','1','teste3','teste11'],
['a2','1','teste4','teste12'],
['a2','1','teste5','teste13'],
['a3','1','teste6','teste14'],
['a3','1','teste7','teste15'],
['a4','1','teste8','teste16']
],
search = [
['a1','AAAA'],
['a4','DDDD']
];
const res = data.filter(arr => arr.some(x => search.some(y => y.includes(x))));
console.log(JSON.stringify(res));
推荐阅读
- c# - 如何在 c# WPF 中停止 DispatcherTimer
- google-play - 如何更新在 Google Play 上发布的应用程序的 verName?
- apache-spark - 使用 Spark 读取 SAS sas7bdat 数据
- reactjs - 如何 Reactjs 一次链接到和 onclick 事件处理?
- node.js - 无法安装离子
- laravel - Laravel hasMany Relation 不起作用
- api - Kubernetes POD 主机名作为 env
- javascript - 选择框不首先显示所选选项
- javascript - gojs中悬停按钮的自定义样式
- ios - 更改 iPad 的备用图标