迭代嵌套的 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');
在此示例中,iterate 函数采用两个参数:要搜索的对象和标识符字符串。它迭代对象的属性,检查标签属性是否与标识符匹配。如果不是,它会检查该属性是否是另一个对象并继续迭代。如果没有找到匹配的对象,则返回null。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3