javascript – 将同一数组中的多个对象合并为一个对象[复制]
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 将同一数组中的多个对象合并为一个对象[复制],小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1194字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 将同一数组中的多个对象合并为一个对象[复制]](/upload/InfoBanner/zyjiaocheng/709/b8e91e55b4b646908247e0e314cb0aa0.jpg)
参见英文答案 > How to concatenate properties from multiple JavaScript objects 12个
var arrObj = [{a:1, b:2},{c:3, d:4},{e:5, f:6}];
我怎么能把它合并成一个obj?
//mergedObj = {a:1, b:2, c:3, d:4, e:5, f:6}
解决方法:
如果您的环境支持Object.assign,那么您可以像这样简洁地执行相同操作
const arrObj = [{a: 1, b: 2}, {c: 3, d: 4}, {e: 5, f: 6}];
console.log(arrObj.reduce(function(result, current) {
return Object.assign(result, current);
}, {}));
// If you prefer arrow functions, you can make it a one-liner ;-)
console.log(arrObj.reduce(((r, c) => Object.assign(r, c)), {}));
// Thanks Spen from the comments. You can use the spread operator with assign
console.log(Object.assign({}, ...arrObj));
ES5解决方案:
你可以像这样使用Array.prototype.reduce
var resultObject = arrObj.reduce(function(result, currentObject) {
for(var key in currentObject) {
if (currentObject.hasOwnProperty(key)) {
result[key] = currentObject[key];
}
}
return result;
}, {});
console.log(resultObject);
# { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }
这个解决方案只是收集结果中每个对象的所有键及其值,最后返回给我们.
这个检查
if (currentObject.hasOwnProperty(key)) {
有必要确保我们不在结果中包含所有继承的可枚举属性.
内容总结
以上是互联网集市为您收集整理的javascript – 将同一数组中的多个对象合并为一个对象[复制]全部内容,希望文章能够帮你解决javascript – 将同一数组中的多个对象合并为一个对象[复制]所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。