[英]How to check if a key is exists in JSON Array of Objects
我有像下面這樣的對象的 JSON 數組,
let data = [
{
"node":[
{
"name":"aaaaa",
"count":"2",
}
]
},
{
"client":[
{
"name":"bbbbb",
"count":"2",
}
]
},
{
"ip_address":[
{
"name":"ccccc",
"count":"3",
}
]
},
{
"compute":[
{
"name":"dddd",
"count":"1",
}
]
}
]
let find_key = "ip_address";
需要檢查root key是否存在(比如需要查找ip_address
是否存在)。 請不要foreach 。
JSFiddle 鏈接: https ://jsfiddle.net/b9gxhnko/
嘗試了以下方法,但沒有運氣。 一些幫助將不勝感激。 提前致謝。 嘗試如下,但它不工作(總是返回false
),
console.log(data[0].has(find_key)); // false
console.log(data.has(find_key)); // false
console.log(data[0].hasOwnProperty(find_key)); // false
您可以嘗試使用array.some()
:
let exists = data.some(x => x[find_key]);
let data = [ { "node":[ { "name":"aaaaa", "count":"2", } ] }, { "client":[ { "name":"bbbbb", "count":"2", } ] }, { "ip_address":[ { "name":"ccccc", "count":"3", } ] }, { "compute":[ { "name":"dddd", "count":"1", } ] } ] let find_key = "ip_address"; let exists = data.some(x => x[find_key]); console.log(exists);
您有一個對象數組,並且_.has()
和in
expect 作為單個對象。 現在你檢查數組是否有一個名為ip_address
的鍵,它沒有。 使用Array.some()
或 lodash 的_.some()
,並檢查每個對象是否有鍵:
const data = [{"node":[{"name":"aaaaa","count":"2"}]},{"client":[{"name":"bbbbb","count":"2"}]},{"ip_address":[{"name":"ccccc","count":"3"}]},{"compute":[{"name":"dddd","count":"1"}]}] // vanilla JS const result1 = data.some(o => 'ip_address' in o) console.log(result1) // lodash const result2 = _.some(data, o => _.has(o, 'ip_address')) console.log(result1)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.