Iteração por meio de objetos JavaScript aninhados
Iteração por meio de objetos JavaScript aninhados pode ser desafiadora, especialmente quando você precisa recuperar objetos específicos com base em uma propriedade valor. Vamos considerar o seguinte exemplo:
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: []
}
]
};
Se quisermos recuperar o objeto para a marca "Ford", podemos usar uma abordagem recursiva:
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');
Neste exemplo, a função iterate usa dois parâmetros: o objeto a ser pesquisado e a string identificadora. Ele itera pelas propriedades do objeto, verificando se a propriedade do rótulo corresponde ao identificador. Caso contrário, verifica se a propriedade é outro objeto e continua a iteração. Se nenhum objeto correspondente for encontrado, ele retornará nulo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3