Я хочу найти ключ: значение, если оно существует где-то вложенным. Мой JSON выглядит так
{
"key1": {
"key11": "foo11",
"key12": "foo12",
"key13": [
"aaa",
"bbb"
]
},
"key2": {
"city": "New York",
"state": "NY",
"phone": [
"20111",
"20333"
]
}
}
Мне нужно найти первое вхождение, например. ключ "телефон" и получить его данные. Как это сделать, используя, например. lodash, а не for/forEach. Ключ "телефон" может существовать или не существовать, а не в первичном объекте первого уровня. Поэтому мне нужно первое вхождение
Вы можете добиться этого, используя рекурсию.
let obj = { "key1": { "key11": "foo11", "key12": "foo12", "key13": [ "aaa", "bbb" ] }, "key2": { "city": "New York", "state": "NY", "phone": [ "20111", "20333" ] } }
function nestedKey(obj,key){
if (obj[key]) return obj[key]
for(let k in obj){
if (typeof obj[k] === "object"){
let temp = nestedKey(obj[k],key);
if (temp) return temp;
}
}
}
console.info(nestedKey(obj,"phone"))
console.info(nestedKey(obj,"phonee"))
Спасибо, Али .. Я просто подумал, что есть простой способ сделать это..
@JohnGlabb Я не знаю насчет lodash, но думаю, это не так сложно
Вы пробовали что-то, что вы можете показать нам, и мы можем помочь вам отладить?