كيفية فرز مصفوفة حسب قيمة التاريخ في JavaScript

تعرف على كيفية فرز مجموعة من العناصر حسب قيمة التاريخ في JavaScript

لنفترض أن لديك مجموعة من الكائنات مثل هذه ، والتي تحتوي على مجموعة منكائنات التاريخ:

const activities = [
  { title: 'Hiking', date: new Date('2019-06-28') },
  { title: 'Shopping', date: new Date('2019-06-10') },
  { title: 'Trekking', date: new Date('2019-06-22') }
]

تريد فرز هذه الأنشطة حسبdateمنشأه.

يمكنك استعمال الsort()طريقةArray، والتي تأخذ وظيفة رد الاتصال ، والتي تأخذ كمعلمات كائنين في المصفوفة (التي نسميهاaوb):

const sortedActivities = activities.sort((a, b) => b.date - a.date)

عندما نعيد قيمة موجبة ، تتواصل الدالة معهاsort()هذا الكائنbالأسبقية في الفرز فوق الكائنa. إرجاع قيمة سالبة سيؤدي إلى عكس ذلك.

الsort()يعيد التابع مصفوفة مرتبة جديدة ، لكنه يفرز أيضًا المصفوفة الأصلية في المكان. وهكذا ، فإن كلا منsortedActivitiesوactivitiesيتم الآن فرز المصفوفات. أحد الخيارات لحماية المصفوفة الأصلية من التعديل هو استخدام الامتدادslice()طريقة لإنشاء نسخة من المصفوفة قبل الفرز ، على النحو التالي:

const sortedActivities = activities.slice().sort((a, b) => b.date - a.date)

المزيد من دروس js: