esto es para devolver una matriz de números que son el valor más alto de las matrices dentro de la matriz base. Puedo hacer que funcione cuando lo uso para declaraciones. Pero he tratado de simplificarlo y no puedo entender por qué no funciona. Cualquier ayuda será bien recibida.
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]No necesita reducir, puede hacerlo solo con Math.max . como esto:
function findMaxNumbers(arr) { return arr.map((x) => Math.max(...x)); } let test = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]; console.log(findMaxNumbers(test));Si tiene valores menores que cero, debe eliminar el valor inicial
x.reduce((a, c) => c > a ? c : a, 0) ^ o use un valor inicial muy pequeño, como -Number.MAX_VALUE .
Para obtener el máximo de todos los máximos, puede reducir las reducciones. Si solo quiere el máximo, mapee la reducción.
const maxOfArray = a => a.reduce((a, c) => c > a ? c : a, -Number.MAX_SAFE_INTEGER); // thanks to Nina const conciseVLAZMax = a => Math.max(...a); // thanks to VLAZ let a = [ [1, 2, 3], [6, -1, -2], [3, 4, 5], ] let maxs = a.map(maxOfArray); let maxMax = maxOfArray(maxs); console.log(maxs); console.log(maxMax);