بازگشت به درس

مرتب‌سازی براساس حوزه

اهمیت: 5

ما یک ارایه از شیءها را برای مرتب‌سازی دریافت کرده‌ایم:

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

راه معمولی برای انجام آن می‌تواند این باشد:

// (Ann، John، Pete) براساس اسم
users.sort((a, b) => a.name > b.name ? 1 : -1);

// (Pete، Ann، John) براساس سن
users.sort((a, b) => a.age > b.age ? 1 : -1);

آیا می‌توانیم آن را کوتاه‌تر کنیم، مثلا اینگونه؟

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

پس به جای اینکه یک تابع بنویسیم، فقط byField(fieldName) را قرار می‌دهیم.

تابع byField را بنویسید که می‌تواند برای این کار استفاده شود.

باز کردن یک sandbox همراه با تست‌ها.

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

باز کردن راه‌حل همراه با تست‌ها درون یک sandbox.