[英]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
-使用reduce
和push
(不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合并数组。
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.