Tengo una matriz que cambiará en el orden de clasificación de los elementos después de todas y cada una de las llamadas, pero quería que se arreglaran según mis requisitos en el lado del cliente. Ejemplo adjunto a continuación.
matriz, por ejemplo, los índices o el orden de clasificación no será el mismo, cambia cada vez
[ { key: "foo" }, { key: "bar" }, { key: "baz" } ]y esto es lo que quiero cada vez, sin importar el orden de clasificación.
[ { key: "baz" }, { key: "foo" }, { key: "bar" } ]Defina la "prioridad" de cada clave en un objeto de antemano. Luego, usando Array#sort , reordena la matriz:
const priorities = { baz: 3, foo: 2, bar: 1 }; const reorder = (arr = []) => arr.sort(({ key: a }, { key: b }) => priorities[b] - priorities[a]); console.log( reorder([ { key: "foo" }, { key: "bar" }, { key: "baz" } ]) ); console.log( reorder([ { key: "bar" }, { key: "foo" }, { key: "baz" } ]) ); console.log( reorder([ { key: "baz" }, { key: "bar" }, { key: "foo" } ]) );