首页 > 解决方案 > 在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']
]

标签: javascriptarraysfilter

解决方案


您可以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));


推荐阅读