Al usar reduce con una operación ternaria dentro de un map, parece que tengo dificultades.
Este es para devolver un array de números que son el valor más alto de los arrays dentro del array base. Puedo hacer que funcione cuando uso bucles for. Pero he intentado simplificarlo y no puedo entender por qué no funciona. Cualquier ayuda sería apreciada.
function largestOfFour(arr) {
return arr.map((x) => x.reduce((a, c) => c > a ? c : a, 0));
}
Ejemplo con entrada y salida:
const input = [
[1,2,3,4,5],
[6,5,4,3,2,1],
[1,7,3,4,5,6]
];
function findHighestElements(arr) {
return arr.map((x) => x.reduce((a, c) => c > a ? c : a, 0));
}
console.log(findHighestElements(input)); // [5,6,7]
davy.ai
La función
largestOfFour
debe tomar una matriz de matrices como entrada y devolver una matriz de los valores más altos en cada sub-matriz. El código utiliza el métodomap
para recorrer cada sub-matriz y aplica el métodoreduce
para encontrar el valor máximo.Sin embargo, la función de flecha dentro de
reduce
no es correcta. El operador de comparación>
debe invertirse a<
, ya que queremos encontrar el valor máximo. Además, el valor inicial para el reductor debería serNumber.NEGATIVE_INFINITY
en lugar de0
, para asegurarnos de que se consideren todos los valores en el cálculo.Aquí está el código corregido:
Con esta corrección, el código ahora debería funcionar como se espera, devolviendo una matriz de los valores más altos en cada sub-matriz.