Object.entries(), keys(), values()

Методы Object.entries(), keys() и values() предназначены для работы с простыми объектами, результатом будет получение массива данных:

Object.entries() - возвращает свойства объекта в формате [key, value];

Object.keys() - возвращает имена свойств;

Object.values() - возвращает значения свойств.

Рассмотрим каждый метод отдельно, а также задачи, которые можно решить с помощью них.


Object.keys()

Для примера возьмем список ежемесячных расходов 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()

С помощью 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()

Если в предыдущих случаях методы возвращали либо имена свойств либо их значения, с помощью 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() это отличные инструменты для переупаковки данных и дальнейшей их обработки.