Skip to main content

keys, values, entries

.keys(), .values(), .entries(). Универсальные методы, и существует общее соглашение использовать их для структур данных. Если бы мы делали собственную структуру данных, нам также следовало бы их реализовать. Методы поддерживаются для структур:

  • Map
  • Set
  • Array

Object.keys, values, entries

Для простых объектов доступны следующие методы:

  • Object.keys(obj) – возвращает массив ключей.
  • Object.values(obj) – возвращает массив значений.
  • Object.entries(obj) – возвращает массив пар [ключ, значение].

Объекты являются основой всех сложных структур в JavaScript. У нас может быть объект data, который реализует свой собственный метод data.values(). И мы всё ещё можем применять к нему стандартный метод Object.values(data).

let user = {
name: "John",
age: 30
};
  • Object.keys(user) = ["name", "age"]
  • Object.values(user) = ["John", 30]
  • Object.entries(user) = [ ["name","John"], ["age",30] ]

💥 Object.keys/values/entries игнорируют символьные свойства
Так же, как и цикл for..in, эти методы игнорируют свойства, использующие Symbol(...) в качестве ключей.

Трансформации объекта

У объектов нет множества методов, которые есть в массивах, например map, filter и других.

Если мы хотели бы их применить, то можно использовать Object.entries с последующим вызовом Object.fromEntries:

  1. Вызов Object.entries(obj) возвращает массив пар ключ/значение для obj.
  2. На нём вызываем методы массива, например, map.
  3. Используем Object.fromEntries(array) на результате, чтобы преобразовать его обратно в объект.

🚀 Источник: https://learn.javascript.ru/keys-values-entries