darsga qaytish

Maydonlar bo'yicha saralash

Bizda tartiblash uchun bir massiv obyektlar mavjud:

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

Buning bajarish uchun odatiy usul:

// nom bo'yicha (Ann, John, Pete)
users.sort((a, b) => (a.name > b.name ? 1 : -1));

// yosh bo'yicha (Pete, Ann, John)
users.sort((a, b) => (a.age > b.age ? 1 : -1));

Buni biz bundan ham qisqaroq qila olamizmi?

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

Shunday qilib, funktsiyani yozish o’rniga byField(fieldName) ni qo’ying.

Buning uchun ishlatilishi mumkin bo’lgan byField funktsiyasini yozing.

Sinovlar bilan sandbox-ni oching.

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

Yechimni sandbox-dagi sinovlar bilan oching.