7
0

من یه آرایه از اشیاء جاوااسکریپت دارم:

let objs = [ 
    { first_nom: 'Laszlo', last_nom: 'Jamf'     },
    { first_nom: 'Pig',    last_nom: 'Bodine'   },
    { first_nom: 'Pirate', last_nom: 'Prentice' }
];

چطور می‌تونم اونا رو بر اساس مقدار last_nom در جاوااسکریپت مرتب کنم؟

من با sort(a, b) آشنا هستم، ولی به نظر می‌رسه فقط برای رشته‌ها و اعداد کار می‌کنه. آیا باید متد toString() رو به اشیاءم اضافه کنم؟

0
پاسخ کاربردی

نوشتن یه تابع مقایسه به راحتی امکان‌پذیره:

function compare( a, b ) {
  if ( a.last_nom < b.last_nom ){
    return -1;
  }
  if ( a.last_nom > b.last_nom ){
    return 1;
  }
  return 0;
}

objs.sort( compare );

یا

objs.sort((a,b) => (a.last_nom > b.last_nom) ? 1 : ((b.last_nom > a.last_nom) ? -1 : 0))

یا به صورت ساده‌تر برای اعداد:

objs.sort((a,b) => a.last_nom - b.last_nom);
ارسال پاسخ به سوال بالا

برای ارسال پاسخ باید وارد اکانتت بشی

اگر پاسخت شامل تکه کدی میشه، از منوی ویرایشگر پایین، تکه کدی که نوشتی رو انتخاب کن و بعد از طریق زبان کدی که نوشتی رو انتخاب کن تا کدت داخل بلاک مخصوص زبان خودش قرار بگیره و کدت خواناتر برای بقیه نشون داده بشه

اگه پاسخت رفرنسی داره، لینک رفرنس رو هم بذار تا پاسختت کاملتر و معتبر تر بشه