首頁 >web前端 >js教程 >如何有效率地在嵌套的 JavaScript 物件中尋找特定物件?

如何有效率地在嵌套的 JavaScript 物件中尋找特定物件?

Susan Sarandon
Susan Sarandon原創
2024-11-03 02:48:03770瀏覽

How to Efficiently Find a Specific Object in Nested JavaScript Objects?

迭代嵌套的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn