¿Cómo puedo encontrar la suma de todos los números en la siguiente matriz multidimensional por Función Array.prototype.reduce ():

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

Sé cómo hacer eso usando for loop, pero me pregunto ...

2
Farooq AR 20 jul. 2016 a las 09:24

2 respuestas

La mejor respuesta

Puedes hacerlo así,

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

En el código anterior, 0 pasado como segundo argumento es el valor inicial que se utilizará en el cálculo.

9
Rajaprabhu Aravindasamy 20 jul. 2016 a las 06:26

Divida esto en subproblemas.

Primero, escriba getNumbers para obtener una matriz de números de la entrada. Utiliza getNumber, que obtiene el segundo elemento en cada pequeña matriz. sum suma los números en una matriz usando reduce, que usa la función add para sumar dos números

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)));
1
user663031user663031 20 jul. 2016 a las 06:33