JavaScript数组过滤和映射问题。如何进行嵌套过滤?
假设我有一个数组JavaScript数组过滤和映射问题。如何进行嵌套过滤?,javascript,arrays,sorting,mapping,filtering,Javascript,Arrays,Sorting,Mapping,Filtering,假设我有一个数组 const arr = [ { category: 'Diner', item: [ {name: 'Chicken Rice', price: 200}, {name: 'Mutton Rice', price: 300}, ], }, { category: 'Breakfast', item: [
const arr = [
{
category: 'Diner',
item: [
{name: 'Chicken Rice', price: 200},
{name: 'Mutton Rice', price: 300},
],
},
{
category: 'Breakfast',
item: [
{name: 'Tea Bisuit', price: 100},
{name: 'Bread Butter', price: 300},
{name: 'Green Tea', price: 80},
],
},
];
如何根据项目名称过滤数组?
例如,如何筛选项目名为绿茶的数组
输出必须如下所示:
arr = [
{
category: 'Breakfast',
item: [
{name: 'Green Tea', price: 80},
],
},
];
您可以通过
arr
映射,对每个元素过滤与术语匹配的项
之后,再次过滤arr
以拒绝项为空的元素
const arr=[{category:“Diner”,item:[{name:“Chicken Rice”,price:200},{name:“Mutton Rice”,price:300},},{category:“早餐”,item:[{name:“Tea Bisuit”,price:100},{name:“Bread Butter”,price:300},{name:“绿茶”,price:80},},},]
const term=“绿茶”
常数res=arr
.map((类别数据项)=>({
类别:categoryAndItems.category,
item:categoryAndItems.item.filter((item)=>item.name==term),
}))
.filter((categoryAndItems)=>categoryAndItems.item.length>0)
console.log(res)
您可以通过arr
映射,使用每个元素筛选与术语匹配的项
之后,再次过滤arr
以拒绝项为空的元素
const arr=[{category:“Diner”,item:[{name:“Chicken Rice”,price:200},{name:“Mutton Rice”,price:300},},{category:“早餐”,item:[{name:“Tea Bisuit”,price:100},{name:“Bread Butter”,price:300},{name:“绿茶”,price:80},},},]
const term=“绿茶”
常数res=arr
.map((类别数据项)=>({
类别:categoryAndItems.category,
item:categoryAndItems.item.filter((item)=>item.name==term),
}))
.filter((categoryAndItems)=>categoryAndItems.item.length>0)
console.log(res)
次要建议,先过滤,然后映射。不需要变换将被过滤的对象out@Rajesh当然,谢谢。可以一次过滤,我只想澄清一些小建议,先过滤然后映射。不需要变换将被过滤的对象out@Rajesh当然,谢谢。可以一次过滤,我只想澄清步骤