Как преобразовать объект в массив
Короткий ответ
Object.values() возвращает значения, Object.keys() — ключи:
const prices = { tea: 3, coffee: 4, cake: 5 };
console.log(Object.keys(prices).join(', '));
console.log(Object.values(prices).join(', '));Результат:
tea, coffee, cake
3, 4, 5Пары
Object.entries() возвращает пары из ключа и значения:
const prices = { tea: 3, coffee: 4 };
console.log(JSON.stringify(Object.entries(prices)));Результат:
[["tea",3],["coffee",4]]Массив объектов
Часто нужен список объектов, например для вывода таблицы:
const prices = { tea: 3, coffee: 4 };
const rows = Object.entries(prices).map(([name, price]) => ({ name, price }));
console.log(JSON.stringify(rows));Результат:
[{"name":"tea","price":3},{"name":"coffee","price":4}]Частая ошибка
Array.from() с обычным объектом не работает и даёт пустой массив:
console.log(Array.from({ tea: 3, coffee: 4 }).length);Результат:
0Функции из этого ответа
- Object.keys — Возвращает массив имён свойств объекта.
- Object.values — Возвращает массив значений свойств объекта.
- Object.entries — Возвращает массив пар «имя свойства и значение».