You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取JavaScript Map中所有数组第二个元素的总和?

解决Map中数组第二个元素的求和问题

原函数的问题分析

  • 函数参数语法错误:map[k,[v, v1]] 不是合法的JavaScript函数参数写法,参数应直接接收传入的Map对象。
  • Map无length属性:你试图通过map.length遍历Map,但Map的元素数量需用map.size获取,且不能用普通索引循环遍历Map。
  • 未声明累加变量:函数中直接使用sum但未提前声明,会引发未定义错误。
  • 元素访问逻辑错误:map[v1]无法正确获取数组的第二个元素,因为你没有正确遍历并解构Map中的键值对。

正确实现方案

方案1:使用Map的forEach方法

function sumArray(map) {
  let sum = 0;
  map.forEach((arr) => {
    sum += arr[1];
  });
  return sum;
}

// 调用示例
console.log(sumArray(myMap)); // 输出 18.5

方案2:使用for...of遍历Map的values

function sumArray(map) {
  let sum = 0;
  for (const arr of map.values()) {
    sum += arr[1];
  }
  return sum;
}

方案3:使用Array.from结合reduce(简洁写法)

const totalSum = Array.from(myMap.values()).reduce((total, arr) => total + arr[1], 0);
console.log(totalSum); // 输出 18.5

内容的提问来源于stack exchange,提问作者aTubOfAdam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:40:24