TGViewer
Webchic - frontend, backend, ci/cd Webchic - frontend, backend, ci/cd @webchic · 995 subscribers
Post #470 1.01K
Object.keys, values, entries
Давайте отойдём от отдельных структур данных и поговорим об их переборе вообще.
В предыдущей главе мы видели методы map.keys(), map.values(), map.entries().
Это универсальные методы, и существует общее соглашение использовать их для структур данных. Если бы мы делали собственную структуру данных, нам также следовало бы их реализовать.
Методы поддерживаются для структур:
Map
Set
Array
Простые объекты также можно перебирать похожими методами, но синтаксис немного отличается.
Object.keys, values, entries
Для простых объектов доступны следующие методы:
Object.keys(obj) – возвращает массив ключей.
Object.values(obj) – возвращает массив значений.
Object.entries(obj) – возвращает массив пар [ключ, значение].
Обратите внимание на различия (по сравнению с map, например):

Map Object Синтаксис вызова map.keys() Object.keys(obj), не obj.keys() Возвращает перебираемый объект «реальный» массив Первое отличие в том, что мы должны вызвать Object.keys(obj), а не obj.keys().
Почему так? Основная причина – гибкость. Помните, что объекты являются основой всех сложных структур в JavaScript. У нас может быть объект data, который реализует свой собственный метод data.values(). И мы всё ещё можем применять к нему стандартный метод Object.values(data).
Второе отличие в том, что методы вида Object.* возвращают «реальные» массивы, а не просто итерируемые объекты. Это в основном по историческим причинам.
[ Полная статья... ]
More from @webchic
  1. Nov 23, 2024​​Обобщенное программирование – обзор реализаций В большинстве сильно типизированных языко…
  2. May 17, 2024​​Код-ревью для начинающих: советы и ориентиры из практики Полезный гайд для новичков в ко…
  3. Apr 14, 2024​​Руководство по Java 8 Optional В этом учебном пособии мы рассмотрим класс Optional, кото…
  4. Mar 27, 2024​​Улучшаем процесс ведения проекта в Git Статья, в которой хотелось бы затронуть тему стан…
  5. Feb 1, 2024​Нетрадиционные подходы к использованию GraphQL Давайте немного повеселимся и поиграем с G…
  6. Jan 23, 2024​Нетрадиционные подходы к использованию GraphQL Давайте немного повеселимся и поиграем с G…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →