Как найти вложенный объект JSON

Я хочу найти ключ: значение, если оно существует где-то вложенным. Мой JSON выглядит так

{
  "key1": {
    "key11": "foo11",
    "key12": "foo12",
    "key13": [
      "aaa",
      "bbb"
    ]
  },
  "key2": {
    "city": "New York",
    "state": "NY",
    "phone": [
      "20111",
      "20333"
    ]
  }
}

Мне нужно найти первое вхождение, например. ключ "телефон" и получить его данные. Как это сделать, используя, например. lodash, а не for/forEach. Ключ "телефон" может существовать или не существовать, а не в первичном объекте первого уровня. Поэтому мне нужно первое вхождение

Вы пробовали что-то, что вы можете показать нам, и мы можем помочь вам отладить?

Calvin Nunes 09.04.2019 22:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добиться этого, используя рекурсию.

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"))

Спасибо, Али .. Я просто подумал, что есть простой способ сделать это..

John Glabb 09.04.2019 22:59

@JohnGlabb Я не знаю насчет lodash, но думаю, это не так сложно

Maheer Ali 09.04.2019 23:00

Другие вопросы по теме