Получение вложенного значения в объекте

JavaScriptJavaScriptBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы исследуем, как получать вложенные значения в объектах JavaScript с помощью функции dig. Эта функция может быть использована для извлечения определенного значения из сложного вложенного объекта, что делает доступ к необходимой информации проще. В ходе этого лабара вы научитесь использовать оператор in и метод reduce() для обхода вложенных объектов и поиска целевого значения.

Как получить вложенное значение в JSON-объекте

Для извлечения целевого значения из вложенного JSON-объекта по заданному ключу следуйте этим шагам:

  • Откройте Терминал/SSH и введите node, чтобы начать практиковать программирование.
  • Проверьте, существует ли target в obj, используя оператор in.
  • Если target найден, верните соответствующее значение в obj.
  • Если target не найден, используйте Object.values() и Array.prototype.reduce(), чтобы рекурсивно вызывать функцию dig для каждого вложенного объекта, пока не будет найдена первая пара ключ/значение, соответствующая условию.

Вот код для функции 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);

Для использования функции dig сначала создайте JSON-объект с вложенными уровнями, например, так:

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

Затем вызовите функцию dig с JSON-объектом и желаемым ключом:

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

Эти примеры вернут значение ключа level3 в объекте data и undefined для несуществующего ключа level4.

Резюме

Поздравляем! Вы завершили лабу по получению вложенного значения в объекте. Вы можете практиковать в других лабах в LabEx, чтобы улучшить свои навыки.