Soy nuevo en este mundo de vainilla javascript. He estado intentando completar algunos desafíos, pero parece que no puedo encontrar la solución a un desafío.
La tarea es: "Ordenar matriz por propiedad de objeto"
function arraySorter(arr) { return arr .map((e) => { return Object.values(e); }) .filter((e, i) => { console.log(e[1]); return; }); } console.log( arraySorter([ { a: 1, b: 2 }, { a: 5, b: 4 }, ]) );Rendimiento esperado
//expected output: [{a:1,b:2},{a:5,b:4}] // expected output: [{a:5,b:4},{a:2,b:10}]sort con números.
como la función de sort debería return
function arraySorter(arr) { return arr.sort((x, y) => xb - yb) } console.log(arraySorter([{a:1,b:2},{a:5,b:4}])) //expected output: [{a:1,b:2},{a:5,b:4}] console.log(arraySorter([{a:2,b:10},{a:5,b:4}])) //Expected output: [{a:5,b:4},{a:2,b:10}] console.log(arraySorter([{a:1,b:7},{a:2,b:1}])) //Expected output: [{a:2,b:1},{a:1,b:7}]Puede utilizar el método de sort disponible en las matrices.
También puede hacer que su función de clasificación sea más genérica aceptando la clave según la cual los objetos deben clasificarse y el orden de clasificación.
function sortArrayOfObjects(arr, sortKey, isAscending = true) { return [...arr].sort(({ [sortKey]: a }, { [sortKey]: b }) => isAscending ? a - b : b - a ); } console.log(sortArrayOfObjects([{ a: 5, b: 2 }, { a: 1, b: 4 }], "a")); console.log(sortArrayOfObjects([{ a: 2, b: 10 }, { a: 5, b: 4 }], "b")); console.log(sortArrayOfObjects([{ a: 1, b: 7 }, { a: 2, b: 1 }], "a", false));