"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني فرز مجموعة من الكائنات حسب مفتاح التاريخ باستخدام JavaScript؟

كيف يمكنني فرز مجموعة من الكائنات حسب مفتاح التاريخ باستخدام JavaScript؟

تم النشر بتاريخ 2024-12-21
تصفح:249

How can I sort an array of objects by a date key using JavaScript?

فرز مجموعة من الكائنات حسب مفتاح التاريخ باستخدام JavaScript

يعد فرز مجموعة من الكائنات بناءً على مفتاح محدد بقيمة التاريخ مهمة شائعة في برمجة جافا سكريبت. في هذه الحالة، نحتاج إلى فرز مصفوفة من الكائنات حسب المفتاح 'updated_at'، الذي يمثل التاريخ والوقت.

الطريقة الأكثر فعالية لتحقيق ذلك هي استخدام طريقة Array.sort() في الجمع مع وظيفة المقارنة. تأخذ وظيفة المقارنة كائنين كمدخلات وترجع قيمة تحدد ترتيب الكائنات.

إليك كيفية القيام بذلك:

const objects = [{
                    "updated_at": "2012-01-01T06:25:24Z",
                    "foo": "bar"
                },
                {
                    "updated_at": "2012-01-09T11:25:13Z",
                    "foo": "bar"
                },
                {
                    "updated_at": "2012-01-05T04:13:24Z",
                    "foo": "bar"
                }];

// Convert the 'updated_at' strings to JavaScript Date objects
for (let i = 0; i < objects.length; i  ) {
    objects[i].updated_at = new Date(objects[i].updated_at);
}

// Sort the objects based on the 'updated_at' dates
objects.sort((a, b) => {
    return a.updated_at - b.updated_at;
});

console.log(objects);

في هذا الكود، نقوم أولاً بتحويل سلاسل 'updated_at' إلى كائنات تاريخ JavaScript لضمان أنواع بيانات متسقة. بعد ذلك، نستخدم طريقة الترتيب () مع دالة مقارنة تطرح قيم "updated_at" لكائنين وترجع النتيجة. تحدد هذه النتيجة ترتيب الفرز: إذا كانت النتيجة سلبية، فإن الكائن الأول يأتي قبل الثاني؛ إذا كان إيجابيا، فإن الكائن الثاني يأتي أولا؛ إذا كانت صفرًا، تظل الكائنات في ترتيبها الأصلي.

النتيجة النهائية هي مصفوفة مرتبة من الكائنات، مع القيم الأساسية 'updated_at' بترتيب زمني تصاعدي.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3