javascript - 将包含对象的数组展平为 1 个对象

标签 javascript lodash flatten

给定输入:

[{ 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/

相关文章:

javascript - 函数和对象中的闭包

Javascript,删除历史记录中的最后一项(firefox插件)

angular - 在 Angular2 和 Typescript 滚动中使用 lodash debounce 不起作用

javascript - 如何对数组内不同的对象数组进行排序

r - 从命名向量中删除名称,仅获取值

javascript - ExpressJS 中的错误处理

javascript - 如何验证输入框中输入的值只是数字?

npm - 如何更新 package-lock.json 中的一个包的依赖

javascript - 如何将 JavaScript 对象扁平化为类似菊花链的形式?

javascript - 使用 JavaScript 将数组转换为列表