簡體   English   中英

如果數組中的數組包含特定鍵,則返回 true

[英]Return true if an array within an array contains specific key

我有以下 object:

items: [
  {
    object_a {
      id: "1",
      value: "somevalue1"
    }
  },
  {
    object_b {
      id: "2"
      value: "somevalue2"
      items:[
        {
          nested_object_a {
            id: "3"
            value: "somevalue3"
          },
          nested_object_b {
            id: "4"
            value: "somevalue4"
          },
        }
      ]
    }
  },
]

我可以檢查初始項數組中是否存在值鍵:

items.some(item => item.hasOwnProperty("value"));

要查看嵌套 object_b 項數組中是否存在 value 鍵,我可以執行以下操作:

items[1].object_b.items.some(item => item.hasOwnProperty("value"));

我需要使最終表達式動態化,而不是指定要查看的數組中的哪個數字。 我確定我需要對頂級項目進行查找或過濾,但到目前為止我還沒有運氣。

我發現在項目上使用每個 function 允許我從數組中返回我需要的 boolean 值。 這造成的問題是任何沒有 object_b 鍵的數組項返回 null 並破壞我的應用程序。 事實證明,我需要使用可選的鏈接運算符來解決這個問題(.?)。

感謝@ikhvjs 鏈接了那篇stackoverflow 文章。

工作代碼:

items.every(item => {
  item.object_b?.items.some(item => item.hasOwnProperty("value"));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM