迭代嵌套的JavaScript 物件
迭代巢狀的JavaScript 物件可能具有挑戰性,特別是當您需要基於屬性擷取特定對象時價值。讓我們考慮以下範例:
<code class="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: [] } ] };</code>
如果我們想要檢索「Ford」品牌的對象,我們可以使用遞歸方法:
<code class="javascript">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');</code>
在此範例中, iterate 函數有兩個參數:要搜尋的物件和識別符字串。它迭代物件的屬性,檢查標籤屬性是否與識別符相符。如果不是,它會檢查該屬性是否為另一個物件並繼續迭代。如果沒有找到符合的對象,則傳回 null。
以上是如何有效率地在嵌套的 JavaScript 物件中尋找特定物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!