减少多维数字数组

时间:2016-07-20 06:24:42

标签: javascript

如何通过Array.prototype.reduce()函数找到以下多维数组中所有数字的总和:

var arr = [["one",3],["five",15],["ten",30],["twenty",40]];

我知道如何使用for循环,但只是想知道......

2 个答案:

答案 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)));