-1

我需要一个函数,我可以在其中输入具有可变数量子数组的数组。该函数应该添加每个位置的子数组的数量。这是一个包含三个子数组(也可以是两个或更多)的示例输入数组:

   [ [ [ 12 ], [ 8 ], [ 2 ], [ 9 ], [ 2 ], [ 2 ] ],
      [ [ 3 ], [ 4 ], [ 2 ], [ 3 ], [ 2 ], [ 2 ] ],
      [ [ 6 ], [ 2 ], [ 2 ], [ 3 ], [ 2 ], [ 2 ] ] ]

该函数应输出:

[ 21, 14, 6, 15, 6, 6 ]
4

2 回答 2

1
var data = [ [ [ 12 ], [ 8 ], [ 2 ], [ 9 ], [ 2 ], [ 2 ] ],
      [ [ 3 ], [ 4 ], [ 2 ], [ 3 ], [ 2 ], [ 2 ] ],
      [ [ 6 ], [ 2 ], [ 2 ], [ 3 ], [ 2 ], [ 2 ] ] ];

function adder(inputData) {
    var resultArray = new Array(inputData[0].length);
    for (var i = 0, len = inputData.length; i < len; i += 1) {
        for (var j = 0, len1 = inputData[i].length; j < len1; j += 1) {
            if (resultArray[j]) {
                resultArray[j] += parseInt(inputData[i][j]);
            } else {
                resultArray[j] = parseInt(inputData[i][j]);
            }
        }
    }
    return resultArray;
}

console.log(adder(data));

结果

[ 21, 14, 6, 15, 6, 6 ]
于 2013-10-05T15:56:47.587 回答
1
function sumSubArrays(array) {
    if (array.length == 0) {
        return new Array();
    }
    var resultLength = array[0].length;
    var result = new Array(resultLength);
    for (var i = 0; i < resultLength; i++) {
        var tmp = 0;
        for (var j = 0; j < array.length; j++) {
            tmp += array[j][i][0];
        }
        result[i] = tmp;
    }
    return result;
}
于 2013-10-05T16:03:20.180 回答