繁体   English   中英

JavaScript将对象数组转换为对象数组

[英]JavaScript convert Array of Array of Objects into Array of objects

我需要使用JavaScript将对象数组转换为简单对象数组

我在下面放当前代码和当前输出

const result = [
  [
    {
      name: '1'
    },
    {
      name: '2'
    }
  ],
  [
    {
      name: '3'
    },
    {
      name: '4'
    }
  ],
  [
    {
      name: '5'
    }
  ],
  [
    {
      name: '6'
    }
  ]
]

const a = result.map(item => {
  return Object.assign({}, ...item)
})


console.log(a)

上面代码的输出(当前和错误输出)

[ { "name": "2" }, { "name": "4" }, { "name": "5" }, { "name": "6" } ]

预期和需要的产出

[
  {
    name: '1'
  },
  {
    name: '2'
  },
  {
    name: '3'
  },
  {
    name: '4'
  },
  {
    name: '5'
  },
  {
    name: '6'
  }
]

看起来您在寻找flat 住宅mdn

 const result = [ [ { name: '1' }, { name: '2' } ], [ { name: '3' }, { name: '4' } ], [ { name: '5' } ], [ { name: '6' } ] ] const a = result.flat(); console.log(a) 

有一个简单,支持全面的方式扁平化阵列,而不使用flat -使用reducepush (不concat效率)。

 const result = [ [ { name: '1' }, { name: '2' } ], [ { name: '3' }, { name: '4' } ], [ { name: '5' } ], [ { name: '6' } ] ] const a = result.reduce((acc, curr) => (acc.push(...curr), acc)); console.log(a); 
 .as-console-wrapper { max-height: 100% !important; top: auto; } 

ES5语法:

 var result = [ [ { name: '1' }, { name: '2' } ], [ { name: '3' }, { name: '4' } ], [ { name: '5' } ], [ { name: '6' } ] ] var a = result.reduce(function(acc, curr) { return (Array.prototype.push.apply(acc, curr), acc); }); console.log(a); 

您可以使用Array.prototype.concat合并数组。

Array.concat

 const result = [ [ { name: '1' }, { name: '2' } ], [ { name: '3' }, { name: '4' } ], [ { name: '5' } ], [ { name: '6' } ] ] const b = Array.prototype.concat.apply([], result); console.log(b); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM