назад до уроку

Сортувати за полем

важливість: 5

У нас є масив об’єктів для сортування:

let users = [
  { name: "Іван", age: 20, surname: "Іванов" },
  { name: "Петро", age: 18, surname: "Петров" },
  { name: "Енн", age: 19, surname: "Гетевей" }
];

Звичайний спосіб зробити це:

// За ім’ям (Енн, Іван, Петро)
users.sort((a, b) => a.name > b.name ? 1 : -1);

// За віком (Петро, Енн, Іван)
users.sort((a, b) => a.age > b.age ? 1 : -1);

Чи можемо ми зробити це ще менш багатослівним?

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

Отже, замість того, щоб кожен раз писати функцію, ми будемо викликати функцію byField(fieldName).

Напишіть функцію byField яка може бути використана для цього.

Відкрити пісочницю з тестами.

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

Відкрити рішення із тестами в пісочниці.