Tengo una matriz como esta:
[ { Orange: 5 }, { Red: 575 }, { Green: 6544 }, { Blue: 1307 } ]El resultado deseado es:
[ { Green: 6544 }, { Blue: 1307 }, { Red: 575 }, { Orange: 5 } ] He estado tratando de usar el operador de clasificación después de revisar Stack Overflow: myArray.sort((a, b) => a.distance - b.distance) . Sin embargo, el problema con el que me encuentro es que la clave no está estandarizada. Todos los ejemplos que encuentro tienen la misma clave, pero estoy tratando de ordenar un valor numérico con claves no estándar.
Al mapear a través de la matriz anterior, puedo acceder a la clave de esta manera:
let ungroupedArr = [ { Orange: 5 }, { Red: 575 }, { Green: 6544 }, { Blue: 1307 } ] ungroupedArr.map(element => { //this is the key Object.keys(element)[0] })Estoy tratando de obtener una solución de clasificación más detallada utilizando la lógica de estilo de mapa anterior (donde tengo acceso a cada elemento de la matriz. Sin embargo, me he topado con una pared y no estoy seguro de a dónde ir a continuación.
¿Alguna idea de cómo haría para resolver esto?
Usando Array#sort y Object#values :
const arr = [ { Orange: 5 }, { Red: 575 }, { Green: 6544 }, { Blue: 1307 } ]; const sorted = arr.sort((a, b) => Object.values(b)[0] - Object.values(a)[0]); console.log(sorted);