Что такое 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 образует мощный пайплайн для декларативной обработки и трансформации данных любой сложности.