[英]How to perform wildcard key search in JSON using Javascript?
如何在 JSON 中執行關鍵字搜索? 我想從 JSON 中獲取所有匹配的字符串鍵,而不是值。
let json = { "first": { "first_fullname": 'abc', "first_address": '1 street name', "first_phone": 123456 }, "second": { "second_fullname": 'xyz', "second_address": '2 street name', "second_phone": 987654 } } var prop1 = 'first_address' var prop2 = 'address' Object.keys(json).forEach((person) => { Object.keys(json[person]).forEach((attr) => { if (prop1 in json[person]) { console.log(prop1) } }) }); Object.keys(json).forEach((person) => { Object.keys(json[person]).forEach((attr) => { if (prop2 in json[person]) { console.log(prop2) } }) });
期望所有包含*address*
的鍵字符串,並使用通配符。
first_address
second_address
我會將其寫為 function ,它采用屬性和通配符標志,然后過濾每個person
的鍵以找到與該屬性匹配的鍵,對無通配符使用嚴格相等或對通配符使用String.includes
:
let json = { "first": { "first_fullname": 'abc', "first_address": '1 street name', "first_phone": 123456 }, "second": { "second_fullname": 'xyz', "second_address": '2 street name', "second_phone": 987654 } } var prop1 = 'first_address' var prop2 = 'address' const hasProp = (json, prop, wildcard) => Object.values(json).flatMap(person => Object.keys(person).filter(key => wildcard? key.includes(prop): key === prop) ) console.log(hasProp(json, prop1, false)) console.log(hasProp(json, prop2, true))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.