Maison >interface Web >js tutoriel >Comment parcourir des objets JavaScript imbriqués : récursifs ou non récursifs ?
Navigation dans les objets JavaScript imbriqués : un guide complet
Itérer dans des objets JavaScript complexes et imbriqués peut poser un défi, en particulier lorsque vous devez récupérer objets imbriqués spécifiques basés sur un identifiant de chaîne fourni. Dans cet article, nous vous guiderons à travers une approche globale pour parcourir efficacement les objets imbriqués.
Pour illustrer le défi, considérons la structure d'objets imbriqués suivante :
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: [] } ] };
Approche non récursive
(Introduit en 2023)
Pour un approche non récursive, nous pouvons utiliser une pile pour parcourir l'objet :
const iterate = (obj) => { const stack = [obj]; while (stack.length > 0) { const currentObj = stack.pop(); Object.keys(currentObj).forEach(key => { console.log(`key: ${key}, value: ${currentObj[key]}`); if (typeof currentObj[key] === 'object' && currentObj[key] !== null) { stack.push(currentObj[key]); } }); } };
Approche récursive
Pour une approche récursive qui fournit une itération profonde, nous pouvons tirer parti Object.keys() :
const iterate = (obj) => { Object.keys(obj).forEach(key => { console.log(`key: ${key}, value: ${obj[key]}`); if (typeof obj[key] === 'object' && obj[key] !== null) { iterate(obj[key]); } }); };
Les deux approches fournissent des moyens efficaces de parcourir les objets JavaScript imbriqués. Que vous optiez pour l'approche non récursive ou récursive dépend de vos besoins et préférences spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!