栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将同一数组内的多个对象合并为一个对象[重复]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将同一数组内的多个对象合并为一个对象[重复]

如果您的环境支持

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 assignconsole.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 }

此解决方案仅将的所有键及其值收集在中的每个对象中

result
,最终将结果返回给我们。

这张支票

if (currentObject.hasOwnProperty(key)) {

有必要确保我们在结果中不包括所有继承的可枚举属性。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号