给定输入:
[{ a: 1 }, { b: 2 }, { c: 3 }]
返回方式:
{ a: 1, b: 2, c: 3 }
对于数组 it's not a problem使用 lodash,但这里我们有对象数组。
最佳答案
使用Object.assign
:
let merged = Object.assign(...arr); // ES6 (2015) syntax
var merged = Object.assign.apply(Object, arr); // ES5 syntax
请注意,Object.assign
尚未在许多环境中实现,您可能需要对其进行 polyfill(使用 core-js、其他 polyfill 或使用 MDN 上的 polyfill)。
您提到了 lodash,因此值得指出的是,它带有一个 _.assign
函数来实现同样的目的:
var merged = _.assign.apply(_, [{ a: 1 }, { b: 2 }, { c: 3 }]);
但我真的推荐新的标准库方式。
关于javascript - 将包含对象的数组展平为 1 个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136422/