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

كيف يمكنني إنشاء قائمة خصائص هرمية لكائن معقد بشكل متكرر؟

تم النشر بتاريخ 2024-11-02
تصفح:297

How can I recursively construct a hierarchical property list of a complex object?

إنشاء قائمة الخصائص العودية

لاجتياز كائن معقد واستخراج قائمة هرمية لخصائصه، فكر في استخدام دالة متكررة. تلتقط هذه التقنية بشكل فعال العلاقات المتداخلة داخل بنية الكائن.

يعتبر نموذج الكائن، بخصائصه المتداخلة، بمثابة مثال على ذلك:

var object = {
    aProperty: {
        aSetting1: 1,
        aSetting2: 2,
        aSetting3: 3,
        aSetting4: 4,
        aSetting5: 5
    },
    bProperty: {
        bSetting1: {
            bPropertySubSetting : true
        },
        bSetting2: "bString"
    },
    cProperty: {
        cSetting: "cString"
    }
}

لإنشاء القائمة المطلوبة من مفاتيح الخصائص بشكل هرمي، يمكننا استخدام وظيفة متكررة مثل هذا:

function iterate(obj, stack) {
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (typeof obj[property] == "object") {
                iterate(obj[property], stack   '.'   property);
            } else {
                console.log(property   "   "   obj[property]);
                $('#output').append($("
").text(stack '.' property)) } } } } iterate(object, '')

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

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

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

بيان الافراج أعيد طبع هذه المقالة على: 1729405459 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3