Що таке 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 утворює потужний пайплайн для декларативної обробки та трансформації даних будь-якої складності.