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

如何实现获取嵌套数组中每个子数组的元素乘积功能?

实现嵌套数组子元素单独乘积计算

没问题,我来帮你调整函数,实现每个子数组单独计算元素乘积并返回指定格式的结果~

思路说明

原来的multiplyAll是用一个变量累积所有元素的总乘积,现在我们需要针对每个子数组单独计算乘积,然后把每个乘积结果包装成单元素数组,最终收集成嵌套数组返回。

基于原循环写法的修改版本

如果你习惯用for循环的写法,可以这样修改:

function multiplySubArrays(arr) {
  const result = [];
  // 遍历外层数组的每个子数组
  for (let a = 0; a < arr.length; a++) {
    // 每个子数组单独初始化乘积变量,避免跨子数组累积
    let subProduct = 1;
    // 遍历当前子数组的元素计算乘积
    for (let b = 0; b < arr[a].length; b++) {
      subProduct *= arr[a][b];
    }
    // 将子数组乘积包装为单元素数组,加入结果集合
    result.push([subProduct]);
  }
  return result;
}

// 测试调用,输出 [[2],[12],[210]]
console.log(multiplySubArrays([[1,2],[3,4],[5,6,7]]));

更简洁的数组方法写法

如果想用更现代的数组API(map+reduce),可以写成更简洁的版本:

const multiplySubArrays = arr => 
  arr.map(subArr => {
    // 用reduce计算当前子数组的乘积,初始值设为1
    const product = subArr.reduce((accumulator, currentNum) => accumulator * currentNum, 1);
    // 返回包装后的单元素数组
    return [product];
  });

// 测试调用,同样输出目标结果
console.log(multiplySubArrays([[1,2],[3,4],[5,6,7]]));

这两种写法都能满足需求,你可以根据自己的代码风格选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:19:26