فهم المشكلة
غالبًا ما نواجه هياكل بيانات معقدة في تطبيقات JavaScript. يمكن أن تكون هذه الهياكل كائنات متداخلة بعمق، مما يجعل من الصعب التعامل معها أو معالجتها بشكل مباشر. إحدى العمليات الشائعة هي تسوية هذه الكائنات، وتحويلها إلى بنية أبسط حيث تكون جميع الخصائص في المستوى الأعلى.
في هذه المدونة، سنتعمق في مقتطف كود JavaScript الذي يعمل على تسوية كائن متداخل بعمق بشكل فعال. سنقوم بتقسيم التعليمات البرمجية سطرًا تلو الآخر، مع شرح منطقها ووظيفتها.
تحليل الكود
let user = { name : 'Chiranjit', address : { personal : { city: 'Kolkata', state: 'West Bengal' }, office : { city: 'Bengaluru', state: 'Karnataka', area: { landmark:'Waterside', post: 433101 } } } } var finalObj = {} const flatObjFn = (obj, parent) => { for(let key in obj){ if(typeof obj[key] === 'object'){ flatObjFn(obj[key], parent '_' key) }else{ finalObj[parent '_' key] = obj[key] } } } flatObjFn(user, 'user'); console.log(finalObj);
شرح سطرًا بسطر
تهيئة كائن الإخراج:
تعريف دالة التسطيح:
التكرار من خلال خصائص الكائن:
التعامل مع الكائنات المتداخلة:
التعامل مع القيم البدائية:
استدعاء وظيفة التسطيح:
تسجيل الكائن المسطح:
كيف يعمل؟
تقوم الدالة flatObjFn باجتياز الكائن بشكل متكرر، وتقسيم الهياكل المتداخلة إلى كائن مسطح. تقوم المعلمة الأصلية بتتبع التسلسل الهرمي للكائن، مما يسمح للوظيفة بإنشاء أسماء خصائص ذات معنى في كائن الإخراج.
دعونا نتواصل على تويتر أو لينكدإن
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3