【问题标题】:Convert array of values to array of objects (key-value) pairs in JavaScript在 JavaScript 中将值数组转换为对象数组(键值)对
【发布时间】:2018-09-11 04:02:56
【问题描述】:

有没有一种简单的方法来转换一个值数组:

dataset = [5, 10, 13];

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

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

此示例是 Scott Murray 的 Web 交互式数据可视化(第 2 版,第187.

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

【问题讨论】:

    标签: javascript arrays d3.js javascript-objects


    【解决方案1】:

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

    const dataset = [5, 10, 13];
    
    const result = dataset.map((value, key) => ({ key, value }));
    
    console.log(result);

    【讨论】:

    • 你打败了我,你的更优雅。我有dataset.map(function(d,i) {return {key: i, value: d}; } );
    【解决方案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; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多