Iterar a través de objetos JavaScript anidados
Iterar a través de objetos JavaScript anidados puede ser un desafío, especialmente cuando necesitas recuperar objetos específicos basados en una propiedad valor. Consideremos el siguiente ejemplo:
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: []
}
]
};
Si queremos recuperar el objeto de la marca "Ford", podemos usar un enfoque recursivo:
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');
En este ejemplo, la función iterar toma dos parámetros: el objeto a buscar y la cadena de identificación. Itera a través de las propiedades del objeto, verificando si la propiedad de la etiqueta coincide con el identificador. En caso contrario, comprueba si la propiedad es otro objeto y continúa la iteración. Si no se encuentra ningún objeto coincidente, devuelve nulo.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3