solo no inicializar el max
numbers.reduce((max, item) => max > item ? max : item);
Introducción
¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?
Fundamentos de POO
Class
Métodos
Acceso público
Acceso privado
Constructor
Getters
Setters
POO Avanzada
Herencia
Acceso protegido
Static
Interfaces
Clases abstractas
Singleton: constructor privado
Asincronismo y consumo de APIs
Promesas
Tipando respuestas HTTP
Proyecto: migración de funciones a clases
Consumiendo ProductMemoryService
ProductHttpService
Consumiendo ProductHttpService
Genéricos
Generics
Generics en clases
Generics en métodos
Decoradores
Próximos pasos
¿Quieres más cursos de TypeScript?
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 11
Preguntas 1
solo no inicializar el max
numbers.reduce((max, item) => max > item ? max : item);
Mi respuesta, usando el último elemento en lugar del primero:
static max(...numbers: number[]) {
return numbers.reduce((max, item) => max >= item ? max : item, numbers[numbers.length - 1]);
}
Lo raro es que se me olvidó poner el -1 en el último arreglo, y de todas maneras funcionó, la parecer también funciona cuando el valor de comparación es “undefinded”.
se puede iniciar con el primer valor del array
Reto
static max (...number: number[]){
return number.reduce((max,item) => max >= item ? max: item, number[0] );
}
mi solucion:
static max(...numbers: number[]){
return numbers.sort((a,b)=>{return b - a})[0];
}
Mi reto … defines el valor minimo con reduce y lo usas para el siguiente reduce.
Pero vi la solucion de Paul, es bastante mas simple aunque no entiendo como funciona el reduce a esa profundad
max(...numbers: number[]): number {
const minValue = numbers.reduce((min, item) => min <= item ? min : item, 0)
return numbers.reduce((max, item) => max >= item ? max : item, minValue)
}
El problema está en que la variable max, se está inciiando en 0, por lo que 0 siempre será mayor que cualquier número negativo. En este caso habría que iniciar la variable ya sea con el valor de la primera posición o el de la última;
profe esta mal usar otro reducer?
static max(...numbers: number[]) {
return numbers.reduce(
(max, item) => (max >= item ? max : item),
numbers.reduce((a, b) => (a <= b ? a : b))
);
}
Una manera usando el sort
static max(...numbers: number[]) {
return numbers.sort((a, b) => b - a)[0]
}
Mi solucion al reto
static max(...numbers: number[]) {
return numbers.reduce((max, i) => (i > max ? i : max), numbers[0]);
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.