«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Сведение глубоко вложенного объекта: пошаговое руководство

Сведение глубоко вложенного объекта: пошаговое руководство

Опубликовано 1 ноября 2024 г.
Просматривать:293

Flattening a Deeply Nested Object: A Step-by-Step Guide

Понимание проблемы
Часто мы сталкиваемся со сложными структурами данных в приложениях JavaScript. Эти структуры могут быть глубоко вложенными объектами, что затрудняет непосредственное манипулирование ими или их обработку. Одна из распространенных операций — сгладить эти объекты, преобразовав их в более простую структуру, в которой все свойства находятся на верхнем уровне.

В этом блоге мы углубимся в фрагмент кода JavaScript, который эффективно выравнивает глубоко вложенный объект. Мы разберем код построчно, объясняя его логику и функциональность.

Разбивка кода

let user = {
  name : 'Chiranjit',
  address : {
    personal : {
      city: 'Kolkata',
      state: 'West Bengal'
    },
    office : {
      city: 'Bengaluru',
      state: 'Karnataka',
      area: {
        landmark:'Waterside',
        post: 433101
      }
    }
  }
}
var finalObj = {} 

const flatObjFn = (obj, parent) => {
  for(let key in obj){
    if(typeof obj[key] === 'object'){
      flatObjFn(obj[key], parent '_' key)
    }else{
      finalObj[parent   '_'   key] = obj[key]
    }
  }
}

flatObjFn(user, 'user');
console.log(finalObj);

Построчное объяснение

  1. Создание вложенного объекта:
    • Мы начинаем с создания глубоко вложенного объекта с именем user. Он содержит такие свойства, как имя, адрес и другие вложенные объекты внутри адрес.
  2. Инициализация объекта вывода:

    • Для хранения сведенного результата создается пустой объект FinalObj.
  3. Определение функции сглаживания:

    • Определена функция с именем FlatObjFn, принимающая два параметра: а) obj: объект, который нужно сгладить. б) родительский элемент: строка для префикса имени свойства для ясности.
  4. Итерация по свойствам объекта:

    • Цикл for...in перебирает каждое свойство входного объекта obj.
  5. Обработка вложенных объектов:

    • Если значением свойства является объект, функция FlatObjFn рекурсивно вызывал этот объект. Родительский параметр объединяется с текущим именем свойства для создания нового префикса для вложенных свойств.
  6. Обработка примитивных значений:

    • Если значение свойства не является объектом (т. е. примитивным значением как строка или число), он добавляется в FinalObj с помощью ключа формируется путем объединения родителя и текущего имени свойства.
  7. Вызов функции выравнивания:

    • FlatObjFn вызывается с объектом пользователя в качестве входных данных и пользователем в качестве входных данных. начальный родительский префикс.
  8. Регистрация сведенного объекта:

    • Окончательный сглаженный объект выводится на консоль с помощью console.log(finalObj).

Как это работает?
Функция FlatObjFn рекурсивно обходит объект, разбивая вложенные структуры на плоский объект. Родительский параметр отслеживает иерархию объектов, позволяя функции создавать осмысленные имена свойств в выходном объекте.

Давайте пообщаемся в Twitter или LinkedIn

Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/dey24/flattening-abelly-best-object-a-plep-by-plep-guide-163g?1 Если есть какое-либо нарушение, пожалуйста, свяжитесь с учебой[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3