Методы Object.entries()
, keys()
и values()
предназначены для работы с простыми объектами, результатом будет получение массива данных:
Object.entries()
- возвращает свойства объекта в формате [key, value]
;
Object.keys()
- возвращает имена свойств;
Object.values()
- возвращает значения свойств.
Рассмотрим каждый метод отдельно, а также задачи, которые можно решить с помощью них.
Для примера возьмем список ежемесячных расходов expenses
и получим с помощью Object.keys()
массив с категориями трат, который запишем в array
.
let expenses = {
food: 30000,
rent: 20000,
gym: 5000,
education: 15000,
other: 25000,
}
let array = Object.keys(expenses) // ['food', 'rent', 'gym', 'education', 'other']
На основе полученных данных можно подсчитать количество категорий.
Object.keys(expenses).length // 5
Или написать проверку на наличие данных.
Object.keys(expenses).length === 0 // false
С помощью Object.values()
и метода reduce()
подсчитаем бюджет.
let expenses = {
food: 30000,
rent: 20000,
gym: 5000,
education: 15000,
other: 25000,
}
let array = Object.values(expenses) // [30000, 20000, 5000, 15000, 25000]
array.reduce((budget, value) => {
return budget = budget + value
}) // 95000
Для начала в array
записали все расходы, далее с помощью reduce()
, который работает с массивами, подсчитали сумму элементов.
Если в предыдущих случаях методы возвращали либо имена свойств либо их значения, с помощью Object.entries()
мы получим и то и другое.
let expenses = {
food: 30000,
rent: 20000,
gym: 5000,
education: 15000,
other: 25000,
}
let array = Object.entries(expenses) // [['food', 30000], ['rent', 20000], ['gym', 5000], ['education', 15000], ['other', 25000]]
С массивами работать проще, например, можно отсортировать имена свойств по алфавиту и трансформировать всё это обратно в объект.
let sortArray = array.sort((a, b) => a[0].localeCompare(b[0]))
Object.fromEntries(sortArray) // {education: 15000, food: 30000, gym: 5000, other: 25000, rent: 20000}
C помощью методов sort()
и localeCompare()
мы сортируем элементы массива по алфавиту по категориям трат. Метод fromEntries()
преобразует sortArray
в объект.
Массивы предоставляют больше возможностей для работы с данными чем объекты, таким образом методы Object.entries()
, keys()
и values()
это отличные инструменты для переупаковки данных и дальнейшей их обработки.