Преобразовать массив значений в массив пар объектов (ключ-значение) в 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; }