多个数组对应下标进行相加,并返回新数组

483 阅读1分钟
let sourceData = [
    [1, 2,3,5,56,77,8,89],
    [1, 2,3,5,56,77,8,89],
    [1, 2,3,5,56,77,8,89],
]
/**
 * 
 * @param {sourceData} 二维数组
 *  二维数组对应下标进行相加,并返回新数组
 *  可以理解为table的列和行循环
 */ 
function getTotalByArray (sourceData) {
    let col = sourceData[0].length
    let row = sourceData.length
    let result = []
    for(var i = 0; i < col; i++){
        var temp = []
        for (var j = 0; j < row.length; j++) {
            temp.push(sourceData[j][i])
        }
        console.log(temp); // 代码块一
        let tatal = temp.reduce((total, item) => {
            return total+item
        }, 0)
        result.push(tatal)
    }
    console.log(result); // 代码块二
}

代码块一的结果

[ 1, 1, 1 ]
[ 2, 2, 2 ]
[ 3, 3, 3 ]
[ 5, 5, 5 ]
[ 56, 56, 56 ]
[ 77, 77, 77 ]
[ 8, 8, 8 ]
[ 89, 89, 89 ]

代码块二的结果

[
    3,   6,  9,  15,  168, 231, 24, 267
]