[英]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.