Сортувати за полем
важливість: 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;
}