如何在javascript中添加多维数组值?

Nan*_*ane 2 javascript multidimensional-array

我是javascript的新手.我对javascript reduce感到困惑.这是我的数组值

var result = [ 
            [ 0, 4, 22 ]//26,
            [ 0, 9, 19 ]//28 
           ]
Run Code Online (Sandbox Code Playgroud)

我想像这样添加这个数组值..

 [
     [26],
     [28]
    ]
Run Code Online (Sandbox Code Playgroud)

而且我必须像这样添加这个值..

26+28=54
Run Code Online (Sandbox Code Playgroud)

这是我的尝试这给了我undefined ..

var sum = result.map((data) => {
    data.reduce(function (total ,curr) {
        return total+curr
    })
});
console.log(sum)
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 5

您需要在块语句中使用return语句

var sum = result.map(data => {
    return data.reduce(function (total, curr) {
//  ^^^^^^
        return total + curr;
    });
});
Run Code Online (Sandbox Code Playgroud)

或没有块声明

var sum = result.map(data => data.reduce((total, curr) => total + curr));
Run Code Online (Sandbox Code Playgroud)

为了回答最后一部分问题,我建议创建一个用于添加值的函数并将其用作回调Array#reduce.

var add = (a, b) => a + b,
    result = [[0, 4, 22], [0, 9, 19]],
    sum = result.map(a => a.reduce(add)),
    total = sum.reduce(add);

console.log(sum);
console.log(total);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }
Run Code Online (Sandbox Code Playgroud)