Javascript 按数组元素数组进行数组筛选?
我有样本数据Javascript 按数组元素数组进行数组筛选?,javascript,arrays,Javascript,Arrays,我有样本数据 [{ "section": "RADIOGRAPHY", "sub_type": "ABDOMEN & PELVIS", "list": [{ "item": "Abdomen", }, { "item": "Abdomen/Pelvis" } ] }, { "section": "SCANNING", "sub_type": "ABDOMEN &am
[{
"section": "RADIOGRAPHY",
"sub_type": "ABDOMEN & PELVIS",
"list": [{
"item": "Abdomen",
},
{
"item": "Abdomen/Pelvis"
}
]
},
{
"section": "SCANNING",
"sub_type": "ABDOMEN & PELVIS",
"list": [{
"item": "first",
},
{
"item": "second"
}
]
}
]
我想过滤深层数组,就像我按列表项名称搜索一样,它应该匹配
若我用fir搜索,它应该将匹配的对象返回到那个条件,但它并没有工作
let temp = this.name.map(function(ele){
return ele.list.filter(el => {
return el['item'].includes(`${value}`)
})
});
console.log(temp);
您可以使用过滤器而不是映射,在第二个find中使用find
const temp = name.filter(function(ele){
return ele.list.find(el => {
return el['item'].includes(`fir`)
})
});
你看起来像这样吗 设arr=[ { 第节:射线照相, 亚型:腹部和骨盆, 名单:[{ 项目:腹部, }, { 项目:腹部/骨盆 } ]}, { 第节:扫描, 亚型:腹部和骨盆, 名单:[{ 项目:第一, }, { 项目:第二 } ]} ] 让toSearch='Abd'; 让array=arr.mapa=>a.list.flat.filtero=>o.item.includestoSearch; console.logarray 你可以试试这个
let tmp = this.name.map( ele => ele.list.filter(el => el.item.includes(`${value}`)))
这对你有用。试试这个
let input = "fir";
let temp = [];
arr.forEach(item => item.list.forEach( e => e.item.search(input.trim()) > -1 ? temp.push(e) : ""));
console.log(temp);
其结果将是:
[ { item: 'first' } ]
可能不在示例json中,您能否澄清数据的实际外观like@Phix将任意三个字符与列表项名称匹配您的答案为空数组您正在更改变量的名称吗?