首页 > 解决方案 > 有没有办法对所有子数组项求和,然后使用“for”或“for-of”循环将所有子数组相乘?

问题描述

我想使用 for() 或 for of() 循环创建一个函数,它将嵌套数组作为参数,然后添加并乘以它的项目。假设,myArray = [[5,6],[9,2],[4,8]] 现在我想像这样处理它:[[5+6] * [9+2] * [4+8]] 我使用 .map() 和 .reduce() 来解决它,但是有没有办法使用经典的 for() 或 for of() 循环来做同样的事情。这是我的审判。

let myArray = [[1,2],[3,4],[5,6]]

function multyPlus(array) {
    resul = 0
    for (const subArray of array) {
        for (const num of subArray) {
            resul += num
        }
        resul *= subArray
    }
return resul
}

console.log(multyPlus(myArray));
//Nan

标签: javascriptarraysfor-loop

解决方案


我会尝试一个两步系统,首先将数字相加,然后将其乘以先前的数字:

function sum(array) {
    var total = 0;
    for (var item of array)
        total += item;
    return total;
}

var myArray = [[5,6],[9,2],[4,8]];

var output = 1;
for (var item of myArray)
    output *= sum(item);

推荐阅读