Una forma posible podría ser ordenar usando una combinación de Array.prototype.map y Array.prototype.sort.
Aquí hay un extracto de MDN:
compareFunction
se puede invocar varias veces por elemento dentro de la matriz. Dependiendo de la naturaleza decompareFunction
, esto puede generar una sobrecarga elevada. Cuanto más trabajocompareFunction
unacompareFunction
y más elementos haya para clasificar, más prudente será considerar usar un mapa para ordenar. La idea es recorrer la matriz una vez para extraer los valores reales utilizados para ordenar en una matriz temporal, ordenar la matriz temporal y luego recorrer la matriz temporal para lograr el orden correcto.
- ¿Cómo podrías escribir un programa que ingrese un número entero positivo N y genere el número de Fibonacci F2N?
- ¿Dónde se usa la cola prioritaria?
- Algoritmos: ¿Cómo encuentro un elemento en una secuencia que sea más pequeño que mi número en la secuencia, a la izquierda de mi número y a la derecha de todos esos elementos?
- ¿Cuál es una manera eficiente de crear una gran cantidad de cadenas aleatorias pero únicas?
- ¿Cuánto tiempo te lleva programar un algoritmo razonablemente complicado?
Básicamente, podría usar un algoritmo de clasificación de su elección en la matriz temporal para lograr la eficiencia.
Enlace a MDN: Array.prototype.sort ()