Javascript es6使用嵌套数组遍历对象数组并返回单个数组?

Javascript es6使用嵌套数组遍历对象数组并返回单个数组?,javascript,ecmascript-6,Javascript,Ecmascript 6,在下面的场景中,如何返回单个数组 let array = [{ name: "name01", arr: [ {name: "inner01"}, {name: "inner02"}, {name: "inner03"} ] }, { name: "name02", arr: [ {name: "inner04"}, {name: "inner05"}, {name:

在下面的场景中,如何返回单个数组

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,
  };
});
我想得到如下信息:

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

如往常一样,任何和所有方向的感谢,所以提前感谢

如果您是为最新的浏览器和最新的节点编写的,那么它非常适合:

让数组=[{ 姓名:name01, arr:[ {name:inner01}, {name:inner02}, {name:inner03} ] }, { 姓名:name02, arr:[ {name:inner04}, {name:inner05}, {name:inner06} ] } ] 设flat=array.flatMap{name,arr}=>[{name},…arr] logflat数组可能是比map更好的选择

让数组=[{ 姓名:name01, arr:[ {name:inner01}, {name:inner02}, {name:inner03} ] }, { 姓名:name02, arr:[ {name:inner04}, {name:inner05}, {name:inner06} ] } ] 设conva=array.reducea,{name,arr}=>a.concat[{name}],arr,[]; console.logconva您可以使用和

让数组=[{name:name01,arr:[{name:inner01},{name:inner02},{name:inner03}]}, {name:name02,arr:[{name:inner04},{name:inner05},{name:inner06}]}] 设op=array.reduceop,{name,arr}=>op.concat[{name}],arr,[]
console.logop一个可能的解决方案是结合当前检查对象的每个条目,检查类型以决定如何将元素放入新数组:

让数组=[ { 姓名:name01, 姓:01,, arr:[{name:inner01},{name:inner02},{name:inner03}] }, { 姓名:name02, 姓:姓02,, arr:[{name:inner04},{name:inner05},{name:inner06}] } ]; 设res=array.reduceac,curr=> { Object.entriescurr.forEach[k,v]=> { 如果typeof v==='string' acc.push{[k]:v}; 如果Array.isArrayv 按…v; }; 返回acc; }, []; console.logres; .as控制台{背景颜色:黑色!重要;颜色:石灰;}
.正如控制台包装器{max height:100%!important;top:0;}刚刚注意到的,结果缺少name01和name02,并且您没有在输出name01和name02中添加name键name02@GetOffMyLawn这是一个合理的警告,但我认为说MDN不建议使用它是言过其实了。它还不是到处都应该使用,但是如果它在你需要的地方得到支持,它会工作得很好。旁注:-你没有在输出name01和name02中添加名称键,因为我的用例的性质和对简洁代码的偏好,这将非常有效!谢谢感谢所有不同的观点和方向来解决这个问题!