СоÑÑÑваÑи за полем
У Ð½Ð°Ñ Ñ Ð¼Ð°Ñив обâÑкÑÑв Ð´Ð»Ñ ÑоÑÑÑваннÑ:
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;
}
ÐÑдкÑиÑи ÑÑÑÐµÐ½Ð½Ñ Ñз ÑеÑÑами в пÑÑоÑниÑÑ.