[ITEM 5] QUESTION: Що таке Object.entries/keys/values?
Методи Object.keys(), Object.values() та Object.entries() є стандартним і зручним набором інструментів для трансформації об'єктів у масиви та подальшої їх ітерації. Кожен із цих статичних методів вирішує своє специфічне завдання з вилучення даних зі структури ключ-значення.
Метод Object.keys() приймає об'єкт як аргумент і повертає масив рядків, що містить усі імена власних ключів цього об'єкта. Метод Object.values(), навпаки, повертає масив значень, що відповідають цим ключам. Метод Object.entries() об'єднує обидва підходи, повертаючи двовимірний масив пар, де кожен елемент є масивом виду [ключ, значення], що ідеально підходить для циклів на кшталт for...of або передачі в методи масивів.
Важливою особливістю всіх трьох методів є те, що вони працюють виключно з власними перелічуваними властивостями об'єкта (enumerable own properties). Це означає, що властивості, успадковані за ланцюжком прототипів, а також властивості з прапорцем enumerable, встановленим у false, будуть автоматично проігноровані та не потраплять у результуючі масиви.
Для зворотньої трансформації в JavaScript передбачено метод Object.fromEntries(). Він виконує протилежну операцію, приймаючи масив пар [ключ, значення] (або будь-який інший ітерований об'єкт із таким самим форматом) і збираючи з них повноцінний об'єкт. Це тріо методів у поєднанні з методами масивів на кшталт map, filter і reduce утворює потужний пайплайн для декларативної обробки та трансформації даних будь-якої складності.