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

Как сгладить вложенные объекты с помощью однолинейного решения?

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

How to Flatten Nested Objects with a One-Line Solution?

Однострочное решение для выравнивания вложенных объектов

В сфере манипулирования данными выравнивание вложенных объектов является распространенной задачей. Возможно, вам придется преобразовать сложный объект с несколькими уровнями вложенности в более простой объект с одним уровнем ключей и значений. Один из эффективных подходов — использовать краткую однострочную строку:

Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

Давайте разберем этот однострочник:

  • Идея состоит в том, чтобы рекурсивно пройти по объекту и создать массив вложенных объектов с одним свойством.
  • Затем используется метод Object.assign. чтобы объединить эти объекты в один плоский объект.
  • Функция _flatten — это рекурсивный помощник, который спускается во вложенные объекты, создавая объекты с одним свойством на основе пар ключ-значение.
  • Этот процесс продолжается. пока все вложенные объекты не будут сглажены.

Чтобы использовать эту однострочную строку, просто передайте вложенный объект в заполнитель yourObject. Полученный плоский объект будет доступен как результат выражения.

Заявление о выпуске Эта статья перепечатана по адресу: 1729573516. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3