Obtener los n valores mas grandes de un array con JavaScript
JavaScript
Publicado el 22 de Marzo del 2021 por Katas (200 códigos)
4.174 visualizaciones desde el 22 de Marzo del 2021
Función para devolver la cantidad de valores mas grandes de un array.
La función lo que haces es hacer una copia del array con arr.slice() (si no se hace una copia, el array se pasa por referencia, y se modificaría el original).
Posteriormente, se ordena con sort() y se invierten los valores con reverse().
Finalmente obtenemos la cantidad de valores deseados con splice().
La función lo que haces es hacer una copia del array con arr.slice() (si no se hace una copia, el array se pasa por referencia, y se modificaría el original).
Posteriormente, se ordena con sort() y se invierten los valores con reverse().
Finalmente obtenemos la cantidad de valores deseados con splice().
1
2
3
4
5
6
const arr=[1,6,3,2,8,4,9,5];
mayores(arr, 1); // [9]
mayores(arr, 3); // [9, 8, 6]
mayores(arr, 5); // [9, 8, 6, 5, 4]
mayores(arr, 100); // [9, 8, 6, 5, 4, 3, 2, 1]
Comentarios sobre la versión: 1 (2)
Para solucionar esto se puede agregar function(a, b){return b-a} dentro del parámetro de sort() quedando de la siguiente forma:
Nótese que de esta forma, sort() entrega el resultado ya de mayor a menor, por lo que no se necesita usar la función reverse() a continuación.
En pocas palabras, pienso que la función quedaría mejor de esta forma:
Un saludo!
Ya lo he cambiado y puesto como tu bien has indicado.