regresar a la lección

Ordenar por campo

importancia: 5

Tenemos una variedad de objetos para ordenar:

let users = [
  { name: "John", age: 20, surname: "Johnson" },
  { name: "Pete", age: 18, surname: "Peterson" },
  { name: "Ann", age: 19, surname: "Hathaway" }
];

La forma habitual de hacerlo sería:

// por nombre(Ann, John, Pete)
users.sort((a, b) => a.name > b.name ? 1 : -1);

// por edad (Pete, Ann, John)
users.sort((a, b) => a.age > b.age ? 1 : -1);

¿Podemos hacerlo aún menos detallado, como este?

users.sort(byField('name'));
users.sort(byField('age'));

Entonces, en lugar de escribir una función, simplemente ponga byField (fieldName).

Escriba la función byField que se pueda usar para eso.

Abrir en entorno controlado con pruebas.

function byField(fieldName){
  return (a, b) => a[fieldName] > b[fieldName] ? 1 : -1;
}

Abrir la solución con pruebas en un entorno controlado.