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当然,谢谢。可以一次过滤,我只想澄清步骤