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:
- Вызов
Object.entries(obj)возвращает массив пар ключ/значение для obj. - На нём вызываем методы массива, например,
map. - Используем
Object.fromEntries(array)на результате, чтобы преобразовать его обратно в объект.
🚀 Источник: https://learn.javascript.ru/keys-values-entries