如何通过Array.prototype.reduce()函数找到以下多维数组中所有数字的总和:
var arr = [["one",3],["five",15],["ten",30],["twenty",40]];
我知道如何使用for循环,但只是想知道......
答案 0 :(得分:8)
你可以这样做,
var sum = [["one",3],["five",15],["ten",30],["twenty",40]].reduce(function(a,b){
return a + b[1];
}, 0);
在上面的代码中,作为第二个参数传递的0是计算中使用的初始值。
答案 1 :(得分:0)
将其分解为子问题。
首先,编写getNumbers
以从输入中获取数字数组。
它使用getNumber
,它获取每个小数组中的第二个元素。
sum
使用reduce
将数字加到数组中,
它使用add
函数添加两个数字
function sum(arr) { return arr.reduce(add, 0); }
function add(a, b) { return a + b; }
function getNumber(pair) { return pair[1]; }
function getNumbers(arr) { return arr.map(getNumber); }
var arr = [["one",3],["five",15],["ten",30],["twenty",40]];
console.log(sum(getNumbers(arr)));