迭代嵌套的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