@Sergey750il

Как найти значение по ключу в объекте с неизвестной глубиной вложенности?

Как найти значение по ключу в объекте с неизвестной глубиной вложенности?
  • Вопрос задан
  • 82 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const find = (val, key) =>
  Object
    .entries(val instanceof Object ? val : {})
    .reduce((found, [ k, v ]) => found || (k === key ? v : find(v, key)), null);
Ответ написан
@MikUrrey
Доброго!
const findByKey = (object, key) => {
 if (object instanceof Array) {
  for (let i = 0; i < object.length; i++) {
    let result = findByKey(object[i], key);
    if (result  !== null) {
     return result;
    }
  }
  return null;
 }
 for (let p in object) {
  if (p === key) {
   return object[p]
  } else if (typeof object[p] === 'object') {
   let result = findByKey(object[p], key);
   if (result  !== null) {
    return result;
   }
  }
 }
 return null;
}

findByKey(someObject, someKey)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы