es6遍历带有嵌套数组的对象数组并返回单个数组?

stu*_*ain 0 javascript ecmascript-6

在以下情况下,如何返回单个数组?

let array = [{
    name: "name01", 
    arr: [
      {name: "inner01"}, 
      {name: "inner02"}, 
      {name: "inner03"}
    ]
  }, {
    name: "name02", 
    arr: [
      {name: "inner04"}, 
      {name: "inner05"}, 
      {name: "inner06"}
    ]
  }
]

let convo = array.map(item => {
  return {
    name: item.name,
    ...item.arr,
  };
});
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/3ng8dc2x/1/

我想得到类似的东西:

[
  {name: "name01"}, 
  {name: "inner01"}, 
  {name: "inner02"}, 
  {name: "inner03"},
  {name: "name02"},
  {name: "inner04"}, 
  {name: "inner05"}, 
  {name: "inner06"}
]
Run Code Online (Sandbox Code Playgroud)

一如既往地感谢所有方向,所以在此先感谢您!

Mar*_*yer 5

如果您正在为最新的浏览器和最新的节点编写程序,flatMap()则非常适合此操作:

let array = [{
    name: "name01", 
    arr: [
      {name: "inner01"}, 
      {name: "inner02"}, 
      {name: "inner03"}
    ]
  }, {
    name: "name02", 
    arr: [
      {name: "inner04"}, 
      {name: "inner05"}, 
      {name: "inner06"}
    ]
  }
]

let flat = array.flatMap(({name, arr}) => [{name}, ...arr])
console.log(flat)
Run Code Online (Sandbox Code Playgroud)

  • 刚注意到,结果缺少`name01`和`name02` (2认同)