gpt4 book ai didi

javascript - 添加来自不同数组对象的所有相同元素

转载 作者:行者123 更新时间:2023-11-28 05:10:23 26 4
gpt4 key购买 nike

我需要添加不同对象的相同元素并返回final volumn{ mono: color:}。请参阅下面的代码:

//function to add different objects
function addMonoColorVolumn(objects) {
var volumn = {
mono: [],
color: []
};
var mono = 0,
color = 0;

function addValusCB(obj) {
if (obj.monoTotal) {
mono += obj.monoTotal;
volumn.mono.push(mono);
}
if (obj.colorTotal) {
color += obj.colorTotal;
volumn.color.push(color);
}
}
if (objects.length) {
//if objects length is more then 0 than call the callback fn.
objects.forEach(addValusCB);
}
return volumn;
}


function main() {
var testObjects = [{
monoTotal: 100,
colorTotal: 200
}, {
monoTotal: 100,
colorTotal: 200
}, {
monoTotal: 100,
colorTotal: 200
}];
console.log(testObjects);
console.log(addMonoColorVolumn(testObjects)) //output should be object{color:1200,mono:600}
}
main();

我是 javascript 新手,请指导我解决这个问题。这是我的 fiddle Running fiddel .

最佳答案

您可以使用Array#reduce并对您需要的属性求和。

var testObjects = [{ monoTotal: 100, colorTotal: 200 }, { monoTotal: 100, colorTotal: 200 }, { monoTotal: 100, colorTotal: 200 }],
sum = testObjects.reduce(function (r, o) {
['mono', 'color'].forEach(function (k) {
r[k] = (r[k] || 0) + o[k + 'Total'];
});
return r;
}, {});

console.log(sum);

关于javascript - 添加来自不同数组对象的所有相同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431784/

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