给定输入:
[{ a: 1 }, { b: 2 }, { c: 3 }]
如何退货:
{ a: 1, b: 2, c: 3 }
对于数组,lodash 不是问题,但这里我们有对象数组。
原文由 Szymon Toda 发布,翻译遵循 CC BY-SA 4.0 许可协议
给定输入:
[{ a: 1 }, { b: 2 }, { c: 3 }]
如何退货:
{ a: 1, b: 2, c: 3 }
对于数组,lodash 不是问题,但这里我们有对象数组。
原文由 Szymon Toda 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于 lodash,您可以使用 merge() :
var arr = [ { a: 1 }, { b: 2 }, { c: 3 } ];
_.merge.apply(null, [{}].concat(arr));
// → { a: 1, b: 2, c: 3 }
如果您在多个地方执行此操作,则可以使用 partial() 和 spread() 使 merge()
更优雅一些:
var merge = _.spread(_.partial(_.merge, {}));
merge(arr);
// → { a: 1, b: 2, c: 3 }
原文由 Adam Boduch 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
使用
Object.assign
:请注意,
Object.assign
尚未在许多环境中实现,您可能需要对其进行 polyfill(使用 core-js、另一个 polyfill 或使用 MDN 上的 polyfill)。您提到了 lodash,因此值得指出的是,它带有一个
_.assign
功能,用于此目的,做同样的事情:但我真的推荐新的标准库方式。