如何取得所有指定的深层属性的值集

let str= [
 {
   name:'ni',
   item:
     [
        {id:1,type:"a"},
        {id:2,type:"b"}
     ]
  },
{
   name:'gi',
   item:
     [
        {id:4,type:"e"},
        {id:5,type:"d"}
     ]
  }
]

咱们如何拿到里面的id,并组成一个数组

阅读 3k
4 个回答
str.flatMap(a => a.item.map(b => b.id));

方法很多

// 1
str.reduce((arr, item) => arr.concat(item.item.map(citem => citem.id)), [])
11 2
str.map(item => item.item.map(citem => citem.id)).flat()
//  [1, 2, 4, 5]
const result = []
str.forEach(({ item }) => item.forEach(({ id }) => result[result.length] = id))
推荐问题