我是javascript的新手。我对javascript reduce感到困惑。 这是我的数组值
var result = [
[ 0, 4, 22 ]//26,
[ 0, 9, 19 ]//28
]
我想像这样添加这个数组值..
[
[26],
[28]
]
我必须再次添加这个值..
26+28=54
这是我的尝试,这给了我未定义..
var sum = result.map((data) => {
data.reduce(function (total ,curr) {
return total+curr
})
});
console.log(sum)
答案 0 :(得分:5)
你需要在块语句中使用return语句
var sum = result.map(data => {
return data.reduce(function (total, curr) {
// ^^^^^^
return total + curr;
});
});
或没有块语句
var sum = result.map(data => data.reduce((total, curr) => total + curr));
要回答最后一部分问题,我建议创建一个添加值的函数,并将其用作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);
.as-console-wrapper { max-height: 100% !important; top: 0; }