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

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,并组成一个数组

阅读 2.9k
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))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题