Объекты в JavaScript хранят данные в формате ключ-значение, но многие задачи удобнее решать с помощью массивов, например, когда нужно перебрать все элементы, отфильтровать или преобразовать их. Для таких случаев существуют встроенные методы, которые позволяют быстро преобразовать объект в массив — в виде списка ключей, значений или пар [ключ, значение]
.
Такие операции часто используются при работе с конфигурациями, данными из API и динамическими структурами данных.
Основные способы преобразования объекта в массив
Object.keys — массив ключей
Метод Object.keys()
создает массив, содержащий только ключи объекта.
const user = {
name: 'Alice',
age: 30,
city: 'London'
};
const keys = Object.keys(user);
console.log(keys); // ['name', 'age', 'city']
Object.values — массив значений
Метод Object.values()
создает массив, содержащий только значения свойств объекта.
const user = {
name: 'Alice',
age: 30,
city: 'London'
};
const values = Object.values(user);
console.log(values); // ['Alice', 30, 'London']
Object.entries — массив пар [ключ, значение]
Метод Object.entries()
создает массив вложенных массивов, где каждый элемент — это пара [ключ, значение]
.
const user = {
name: 'Alice',
age: 30,
city: 'London'
};
const entries = Object.entries(user);
console.log(entries);
// [['name', 'Alice'], ['age', 30], ['city', 'London']]
Пример преобразования объекта в массив объектов
Иногда нужно создать массив, где каждый элемент — это отдельный объект с полями key
и value
.
const user = {
name: 'Alice',
age: 30,
city: 'London'
};
const arrayOfObjects = Object.entries(user).map(([key, value]) => ({
key,
value
}));
console.log(arrayOfObjects);
// [
// { key: 'name', value: 'Alice' },
// { key: 'age', value: 30 },
// { key: 'city', value: 'London' }
// ]
Особенности работы с Object.keys, Object.values и Object.entries
- Порядок элементов в массиве соответствует порядку свойств объекта.
- Символьные ключи (Symbol) в массив не попадут.
- Методы работают только с собственными (не унаследованными) свойствами объекта.