【问题标题】:How to add two object 2d array values in javaScript如何在javaScript中添加两个对象二维数组值
【发布时间】:2020-11-11 17:57:29
【问题描述】:
这是问题
var x = [
{amount:2,concentration:10},
{amount:1,concentration:8},
{amount:6,concentration:15}
];
预期输出:
y = [{amount:9, concentration:33}];
【问题讨论】:
标签:
javascript
arrays
performance
multidimensional-array
dom-events
【解决方案1】:
您可以使用reduce,其初始值等于数组的第一个元素
const x = [
{ amount: 2, concentration: 10 },
{ amount: 1, concentration: 8 },
{ amount: 6, concentration: 15 },
];
const result = x.reduce((acc, val) => ({
amount: acc.amount + val.amount,
concentration: acc.concentration + val.concentration,
}));
console.log(result);
const y = [result];
console.log(y);
【解决方案2】:
Ciao,这里是工作示例:
var x =[
{amount:2,concentration:10},
{amount:1,concentration:8},
{amount:6,concentration:15}
];
var result = {};
result.amount = x.map(item => item.amount).reduce((prev, next) => prev + next);
result.concentration = x.map(item => item.concentration).reduce((prev, next) => prev + next);
console.log([result]);
【解决方案3】:
或者你可以使用简单的for循环
const x =[
{amount:2,concentration:10},
{amount:1,concentration:8},
{amount:6,concentration:15}
];
let y = [{
amount: 0,
concentration: 0
}];
for(let i = 0; i < x.length; i++) {
y[0].amount += x[i].amount;
y[0].concentration += x[i].concentration;
}
console.log(y)
【解决方案4】:
简单的答案,但对很多人都有用。
var x =[
{amount:2,concentration:10},
{amount:1,concentration:8},
{amount:6,concentration:15}
];
let totalAmount = 0;
let totalConcentration = 0;
x.map(xx => {
totalAmount += xx.amount;
totalConcentration += xx.concentration;
});
console.log({amount: totalAmount, concentration: totalConcentration});