gpt4 book ai didi

javascript - 两个不同对象的总和值

转载 作者:搜寻专家 更新时间:2023-11-01 04:49:53 24 4
gpt4 key购买 nike

我有两个不同的对象

var objA = { a: 10, b: 20, c: 30 }; var objB = { a: 3, c: 6, d: 3 };

我想对它们的值求和,如下例所示

{ a: 13, b: 20, c: 36, d: 3 }

最佳答案

使用Array#reduce方法

var objA = {
a: 10,
b: 20,
c: 30
};
var objB = {
a: 3,
c: 6,
d: 3
};

console.log(
// concatenate keys array
Object.keys(objA).concat(Object.keys(objB))
// or use Object.keys(Object.assign({},objA,objB))

// iterate to generate the object
.reduce(function(obj, k) {
// define object property, treat as 0 if not defined
obj[k] = (objA[k] || 0) + (objB[k] || 0);
// return object difference
return obj;
// set initial value as an empty object
}, {})
)


或者更好的方法是将初始值定义为第二个对象的副本。

var objA = {
a: 10,
b: 20,
c: 30
};
var objB = {
a: 3,
c: 6,
d: 3
};

console.log(
// get property names array of objB ----Edit objA -----
Object.keys(objA)
// iterate over array
.reduce(function(obj, k) {
// add value to existing property or update
obj[k] = (obj[k] || 0) + objA[k];
// return object reference
return obj;
// define initial value as an object which holds
// all the property and value in objB
}, Object.assign({}, objB))
)

关于javascript - 两个不同对象的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42203127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com