Tengo este código para una clase en la que se supone que debo usar el reduce()método para encontrar los valores mínimo y máximo en una matriz. Sin embargo, estamos obligados a utilizar sólo una sola llamada para reducir. La matriz de retorno debe ser de tamaño 2, pero sé que el reduce()método siempre devuelve una matriz de tamaño 1.
Puedo obtener el valor mínimo usando el código a continuación, sin embargo, no sé cómo obtener el valor máximo en esa misma llamada. Supongo que una vez que obtengo el valor máximo, simplemente lo empujo a la matriz después de reduce()que finaliza el método.
/**
* Takes an array of numbers and returns an array of size 2,
* where the first element is the smallest element in items,
* and the second element is the largest element in items.
*
* Must do this by using a single call to reduce.
*
* For example, minMax([4, 1, 2, 7, 6]) returns [1, 7]
*/
function minMax(items) {
var minMaxArray = items.reduce(
(accumulator, currentValue) => {
return (accumulator < currentValue? accumulator: currentValue);
}
);
return minMaxArray;
}
Solución del problema
En ES6 puede usar el operador de propagación. Una solución de cadena:
Math.min(...items)
No hay comentarios:
Publicar un comentario