Главная Категории Контакты Поиск

Функция для получения целевого значение во вложенном объекте

Как вернуть целевое значение во вложенном объекте JSON на основе заданного ключа.

JavaScript ·11.02.2020·читать 1 мин 🤓·Автор: Alex Myzgin

Функция dig возвращает целевое значение во вложенном объекте JSON на основе заданного ключа.

Сначала используем оператор in, чтобы проверить, существует ли target в obj. Если такой имеется - возвращаем значение obj[target]; в противном случае используем Object.values(obj) и Array.prototype.reduce(), чтобы рекурсивно вызывать dig для каждого вложенного объекта, пока не будет найдена первая подходящая пара ключ / значение.

const dig = (obj, target) =>
  target in obj
    ? obj[target]
    : Object.values(obj).reduce((acc, val) => {
        if (acc !== undefined) return acc;
        if (typeof val === "object") return dig(val, target);
      }, undefined);

// Пример:

const data = {
  level1: {
    level2: {
      level3: "some data",
    }
  }
};

dig(data, 'level3'); // "some data"
dig(data, 'level4'); // undefined

Website, name & logo
Copyright © 2019. Alex Myzgin