البرمجة

ترتيب الكائنات في JavaScript

بالتأكيد، يمكن ترتيب الكائنات في المصفوفة بمفاتيح ديناميكية وفقًا لقيمها بدءًا من الأكبر إلى الأصغر. في الواقع، يمكن القيام بذلك باستخدام مجموعة من الخطوات.

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

لنقم بتفصيل الخطوات اللازمة لتحقيق هذا الهدف:

  1. استخراج المفاتيح والقيم من الكائن.
  2. إنشاء قائمة من الأزواج (المفتاح، القيمة).
  3. ترتيب القائمة بناءً على القيم.
  4. إعادة بناء الكائن بعد الترتيب.

سنقوم بتنفيذ هذه الخطوات بالتفصيل في الشفرة أدناه:

javascript
// المصفوفة التي تحتوي على الكائن مع المفاتيح الديناميكية let valueArr = [{ 485: 201.5897, 487: 698.52, 598: 351.85, year: '2016' }]; // الخطوة 1: استخراج المفاتيح والقيم let obj = valueArr[0]; // نستخدم valueArr[0] لأن هناك كائن واحد فقط في المصفوفة let keys = Object.keys(obj).filter(key => key !== 'year'); // نستبعد 'year' let values = keys.map(key => obj[key]); // الخطوة 2: إنشاء قائمة من الأزواج (المفتاح، القيمة) let keyValuePairs = keys.map((key, index) => ({ key: key, value: values[index] })); // الخطوة 3: ترتيب القائمة بناءً على القيم keyValuePairs.sort((a, b) => b.value - a.value); // الفرز من الأكبر إلى الأصغر // الخطوة 4: إعادة بناء الكائن بعد الترتيب let sortedObj = {}; keyValuePairs.forEach(pair => { sortedObj[pair.key] = pair.value; }); sortedObj.year = obj.year; // إعادة إضافة السنة // تحديث المصفوفة الأصلية valueArr[0] = sortedObj; console.log(valueArr);

بعد تنفيذ هذه الشفرة، ستحصل على المصفوفة المرادة مع الكائن المرتب وفقًا للقيم من الأكبر إلى الأصغر، مع استبعاد الخاصية ‘year’.

المزيد من المعلومات

بالطبع، يمكننا التحدث بمزيد من التفصيل حول كيفية تنفيذ كل خطوة وتوضيح بعض النقاط الهامة.

أولاً، في الخطوة الأولى، نقوم باستخراج المفاتيح والقيم من الكائن. في هذه الخطوة، نستخدم الدالة Object.keys() لاستخراج جميع المفاتيح من الكائن. ولكن، بما أننا نريد استبعاد الخاصية ‘year’، نقوم بتصفية المفاتيح باستخدام filter() لإزالة هذا الخاصية.

في الخطوة الثانية، نقوم بإنشاء قائمة من الأزواج (المفتاح، القيمة). نقوم بذلك عن طريق دمج المفاتيح والقيم المستخرجة في خطوة الأولى في أزواج مع بعضها البعض.

ثم، في الخطوة الثالثة، نقوم بترتيب القائمة السابقة من الأزواج (المفتاح، القيمة) بناءً على القيم. هنا نستخدم دالة sort() ونمرر إليها دالة مقارنة تقوم بمقارنة القيم وترتيبها بناءً على القيم.

وأخيرًا، في الخطوة الرابعة، نقوم بإعادة بناء الكائن بعد ترتيب الأزواج. نقوم بذلك عن طريق إنشاء كائن جديد وتعيين كل مفتاح مع قيمته المقابلة في الكائن الجديد. وفي النهاية، نعيد إضافة الخاصية ‘year’ إلى الكائن الجديد ليكون متطابقًا مع الكائن الأصلي.

يمكن أن يكون تنظيم الخطوات بشكل مبسط كما يلي:

  1. استخراج المفاتيح والقيم: استخدم Object.keys() للحصول على المفاتيح وقم بتصفية المفاتيح لاستبعاد الخاصية ‘year’.
  2. إنشاء قائمة من الأزواج: استخدم map() لدمج المفاتيح والقيم في أزواج.
  3. ترتيب القائمة: استخدم sort() لترتيب الأزواج بناءً على القيم.
  4. إعادة بناء الكائن: استخدم forEach() لإنشاء كائن جديد بالترتيب الصحيح.

بهذه الطريقة، يمكننا تحقيق الهدف المطلوب والحصول على الكائن المرتب وفقًا للقيم من الأكبر إلى الأصغر، مع استبعاد الخاصية ‘year’ كما هو مطلوب.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر