是否有一种简单的方法来转换值数组:
dataset = [5, 10, 13];
到一个对象数组,其中每个对象都是一个键值对?
dataset = [ { key: 0, value: 5 },
{ key: 1, value: 10 },
{ key: 2, value: 13 } ];
此示例是"数据加入键和#34;中数据集的缩写版本。 Scott Murray的互动数据可视化网站,第2版,第2页。 187。
我无法找到答案,因此我在下面发布自己的解决方案。
答案 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; }