javascript - 在另一个对象数组中过滤一个对象数组的最佳方法是什么?

标签 javascript arrays filter javascript-objects

我有一个这样的数组:

     const array = [
       { 
         id: 1,
         list: [
          {
            name: "abc",
            quantity: 46,
          },
          {
            name: "abc cba",
            quantity: 8,
          },
         ]
       }
    
       { 
         id: 2,
         list: [
          {
            name: "def",
            quantity: 895,
          },
          {
            name: "abc ebn",
            quantity: 8,
          },
         ]
       }
     ]

如果我想检查该数组是否包含:name: "abc" 并仅过滤包含它的对象,过滤该数组的最佳方法是什么?

我试过在 filter() 中使用 map.(),但我不知道这样做是否合适。 我的代码是这样的:

let filteredArray = array.filter(el => {

   let filteredName;

   el.list.map (name => {
      if (elt.name.includes("abc"){
        filteredName = name
       }
   }
 return filteredName;
})

最佳答案

const array = [
  { id: 1, list: [ { name: "abc", quantity: 46, }, { name: "abc cba", quantity: 8 } ] },
  { id: 2, list: [ { name: "def", quantity: 895, }, {  name: "abc ebn", quantity: 8 } ] }
];

// iterate over array
const res = array.map(({ list, ...el }) => (
  // filter current element's list
  { ...el, list: list.filter(({ name }) => name.includes("abc")) }
));

console.log(res);

关于javascript - 在另一个对象数组中过滤一个对象数组的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68246738/

相关文章:

javascript - 使用js和php更改数据库中数据的顺序

javascript - React 组件卸载时如何停止 JavaScript 事件?

javascript - JS 过滤器 item[key] 是什么?

Python:如何查找列表中特定数量的项目是否相同?

php - 如果某些 td 使用 jquery json 数据包含相同的 id,则 Rowspan

filter - 按键值推力过滤器

javascript - 根据数组中的位置从数组中获取代表元素

javascript - 获取不是数字(NaN)错误 html/js

javascript - array.splice 从剩余元素中删除值

c - 使用 fscanf 从文件读取并保存到 struct c 语言的数组中