नेस्टेड जावास्क्रिप्ट ऑब्जेक्ट के माध्यम से पुनरावृत्त करना
नेस्टेड जावास्क्रिप्ट ऑब्जेक्ट के माध्यम से पुनरावृत्त करना चुनौतीपूर्ण हो सकता है, खासकर जब आपको किसी संपत्ति के आधार पर विशिष्ट ऑब्जेक्ट को पुनः प्राप्त करने की आवश्यकता होती है कीमत। आइए निम्नलिखित उदाहरण पर विचार करें:
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: []
}
]
};
यदि हम "फोर्ड" ब्रांड के लिए ऑब्जेक्ट को पुनः प्राप्त करना चाहते हैं, तो हम एक पुनरावर्ती दृष्टिकोण का उपयोग कर सकते हैं:
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