在JavaScript中将值数组转换为对象数组(键值)对

时间:2018-04-01 21:24:48

标签: javascript arrays d3.js javascript-objects

是否有一种简单的方法来转换值数组:

dataset = [5, 10, 13];

到一个对象数组,其中每个对象都是一个键值对?

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

此示例是"数据加入键和#34;中数据集的缩写版本。 Scott Murray的互动数据可视化网站,第2版,第2页。 187。

我无法找到答案,因此我在下面发布自己的解决方案。

2 个答案:

答案 0 :(得分:2)

使用Array.map()迭代数组。 Array.map()接受返回新项的回调。第一个参数是原始项目(value),第二个是索引(key):



const dataset = [5, 10, 13];

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

console.log(result);




答案 1 :(得分:2)

您可以使用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; }