التكرار من خلال كائنات JavaScript المتداخلة
يمكن أن يكون التكرار من خلال كائنات JavaScript المتداخلة أمرًا صعبًا، خاصة عندما تحتاج إلى استرداد كائنات محددة بناءً على خاصية قيمة. لنفكر في المثال التالي:
var cars = {
label: 'Autos',
subs: [
{
label: 'SUVs',
subs: []
},
{
label: 'Trucks',
subs: [
{
label: '2 Wheel Drive',
subs: []
},
{
label: '4 Wheel Drive',
subs: [
{
label: 'Ford',
subs: []
},
{
label: 'Chevrolet',
subs: []
}
]
}
]
},
{
label: 'Sedan',
subs: []
}
]
};
إذا أردنا استرداد الكائن الخاص بعلامة "Ford"، فيمكننا استخدام أسلوب عودي:
const iterate = (obj, identifier) => {
for (let key in obj) {
if (obj[key]['label'] === identifier) {
return obj[key];
}
if (typeof obj[key] === 'object' && obj[key] !== null) {
const result = iterate(obj[key], identifier);
if (result) {
return result;
}
}
}
return null;
};
const fordObject = iterate(cars, 'Ford');
في هذا المثال، تأخذ الدالة التكرارية معلمتين: الكائن المطلوب البحث عنه وسلسلة المعرف. إنه يتكرر من خلال خصائص الكائن، ويتحقق مما إذا كانت خاصية التسمية تطابق المعرف. إذا لم يكن الأمر كذلك، فإنه يتحقق مما إذا كانت الخاصية كائنًا آخر ويستمر في التكرار. إذا لم يتم العثور على كائن مطابق، فسيتم إرجاعه خاليًا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3