如何获取JavaScript中所有Map值的总和?

时间:2020-05-08 08:34:43

标签: javascript

我有一个地图,其中值是数字。有什么方法可以获取所有值的总和?

示例:

{"key1":6,"key2":5}

预先感谢

编辑:地图示例:

Map(2) {23 => 1, 24 => 3}

2 个答案:

答案 0 :(得分:0)

您可以简单地遍历对象并求和,

const ob = {"key1":6,"key2":5}

let sum = 0;
for (let key in ob) {
  sum += ob[key];
}
console.log(sum);

一种简洁的方法可能是:

const ob = {"key1":6,"key2":5}

const sum = Object.values(ob).reduce((acc, val) => acc + val, 0);
console.log(sum);

如果您有Map,则可以遍历并找到总和,如下所示:

const myMap = new Map([[23, 1], [24, 3]]);
let sum = 0;
myMap.forEach((v) => {
  sum += v;
});

console.log(sum)

答案 1 :(得分:0)

首先,这是一个对象,而不是Map。要对值求和,可以使用for...inObject.values().reduce

const obj = {
  "key1": 6,
  "key2": 5
};

let sum = 0;

for (let prop in obj) {
  sum += obj[prop];
}

console.log(sum);

const obj = {
  "key1": 6,
  "key2": 5
};

const sum = Object.values(obj).reduce((a, c) => a + c, 0);

console.log(sum);