Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как преобразовать объект в массив

Короткий ответ

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 — Возвращает массив пар «имя свойства и значение».

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.