2016-07-20 2 views

ответ

5

Вы можете сделать это так,

var sum = [["one",3],["five",15],["ten",30],["twenty",40]].reduce(function(a,b){ 
    return a + b[1]; 
}, 0); 

в приведенном выше коде, 0 передается в качестве второго аргумента начальное значение, которое будет использоваться при расчете.

+1

Thanx ... Я забыл 0, поэтому он возвращается NaN в моем дело. –

0

Препятствуйте этому вниз к sub-проблемам.

Сначала напишите 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)));

+0

ваш код кажется, что нам требуется 2 разных итерации для достижения желаемого OP. 1) для отображения 2) для уменьшения. Почему это? любые конкретные причины? –

+0

Правильно, это называется декомпозицией проблемы. –

Смежные вопросы