تحويل خصائص الكائنات في JavaScript باستخدام Reduce
بالطبع، يمكن تحقيق ذلك بسهولة باستخدام JavaScript دون الحاجة إلى مكتبات إضافية. سأشرح لك كيفية القيام بذلك باستخدام لغة JavaScript.
لتحقيق هذه العملية، يمكننا استخدام حلقة for...of
للمرور على كل عنصر في الجدول الأصلي، ثم نقوم بإنشاء كائن جديد حيث يكون اسم العنصر هو مفتاح الكائن، ويكون القيمة هي الكائن نفسه بدون الخاصية “name”. إليك كيفية تنفيذ ذلك:
-
حساب فارق الوقت بين الأوقات في R30/01/2024
-
تنبؤ البيانات باستخدام LOESS في Python17/02/2024
javascript// الجدول الأصلي
let arr = [];
arr[0] = {name: 'name1', attribute1: 'a1Value1', attribute2: 'a2Value1'};
arr[1] = {name: 'name2', attribute1: 'a1Value2', attribute2: 'a2Value2'};
// الجدول الجديد
let arr2 = {};
// مرور على الجدول الأصلي
for (const obj of arr) {
// إنشاء كائن جديد باستخدام اسم العنصر كمفتاح
let newObj = {...obj}; // نستخدم spread operator لننسخ الخصائص
delete newObj.name; // حذف الخاصية "name"
arr2[obj.name] = newObj;
}
// عرض الجدول الجديد
console.log(arr2);
باستخدام هذا الكود، سيتم إنشاء arr2
بالشكل الذي تريده، حيث يكون لكل اسم في arr
مفتاحًا في arr2
وقيمته هي كائن يحتوي على الخصائص الأخرى. يمكنك تكرار هذا النمط مع المزيد من العناصر حسب حاجتك.
المزيد من المعلومات
في هذا السياق، يمكننا التعمق أكثر في المعلومات المتعلقة بتحويل الخصائص في مصفوفة الكائنات وتنظيمها في مصفوفة جديدة بشكل فعّال وفعال.
JavaScript يقدم العديد من الوظائف والميزات التي يمكن استخدامها لتحقيق هذه العملية بشكل أكثر تقدمًا وإتقانًا. على سبيل المثال، يمكن استخدام ميزة reduce
لتحويل الجدول الأصلي إلى الجدول الجديد بشكل أنيق وبسيط. إليك كيف يمكن تطبيق ذلك:
javascriptlet arr = [
{name: 'name1', attribute1: 'a1Value1', attribute2: 'a2Value1'},
{name: 'name2', attribute1: 'a1Value2', attribute2: 'a2Value2'}
];
let arr2 = arr.reduce((acc, obj) => {
// نستخدم spread operator لننسخ الكائن ونحذف الخاصية "name"
let newObj = { ...obj };
delete newObj.name;
// استخدام اسم العنصر كمفتاح في الجدول الجديد
acc[obj.name] = newObj;
return acc;
}, {});
console.log(arr2);
هذا الكود يستخدم reduce
للمرور عبر كل عنصر في الجدول الأصلي وبناء الجدول الجديد. الفائدة من استخدام reduce
هي تقديم رمز أكثر أناقة وإمكانية للتحكم في تراكم القيم وتحديثها.
يتيح لك هذا النهج الاستفادة من مزايا JavaScript بشكل أفضل، ويعزز القدرة على فهم وصيانة الشيفرة بشكل أفضل على المدى الطويل.