Преобразовать массив значений в массив пар объектов (ключ-значение) в JavaScript

Есть ли простой способ конвертировать массив значений:

dataset = [5, 10, 13];

к массиву объектов, где каждый объект является парой ключ-значение?

dataset = [ { key: 0, value: 5 },
            { key: 1, value: 10 },
            { key: 2, value: 13 } ];

Этот пример является сокращенной версией набора данных в разделе "Соединение данных с ключами" интерактивной визуализации данных для Интернета Скотта Мюррея, 2-е издание, с. 187.

У меня были проблемы с поиском ответа, и поэтому я публикую свое собственное решение ниже.

2 ответа

Решение

Итерируйте массив с Array.map(),Array.map()принимает обратный вызов, который возвращает новый элемент. Первым параметром является оригинальный элемент (value) 2-й индекс (key):

const dataset = [5, 10, 13];

const result = dataset.map((value, key) => ({ key, value }));

console.log(result);

Вы можете использовать функцию map

var dataset = [5, 10, 13]

var result = dataset.map((n, i) => ({ key: i, value: n }))

console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }

Еще одна альтернатива, Array.from

var dataset = [5, 10, 13]

var result = Array.from(dataset, (n, i) => ({key: i, value: n}))

console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }

Другие вопросы по тегам