如何遍历对象并更改数据集中的属性键

时间:2019-10-19 15:47:15

标签: javascript javascript-objects dataformat

我有一组数据需要根据我想要的特定格式重新格式化。 以下是我正在接收的数据格式。

      const recieved = [
    {
      "name": "1PM Industries Inc ",
      "series": [
        {
          "value": 0.0001,
          "name": "2019-08-30"
        },
        {
          "value": 0,
          "name": "2019-08-28"
        }
      ]
    }
  ]

我需要做的是遍历所有对象属性键"name""series""value",并将它们更改为"id""data",{{ 1}}和"x"

以下是我希望更改以上数据集的数据格式。 我需要将"y"替换为"name",并将"x"替换为"value"

"y"

我发现我们可以通过 const columns = [ { "id": "japan", "data": [ { "x": "plane", "y": 45 }, { "x": "helicopter", "y": 253 } ] } ]

访问对象的属性键
Object.keys

在数据格式化方面,我发现自己处于非常困难的境地。希望有人可以帮助我。谢谢

4 个答案:

答案 0 :(得分:1)

这应该有效:

SQLite Manager

映射到每个接收到的对象,返回一个新对象。新对象的received.map(r => ({ id: r.name, data: r.series.map(s => ({ x: s.name, y: s.value })) })); 是接收到的对象的id。新对象name是旧对象data的映射,旧对象将series转换为name,并将x转换为value

答案 1 :(得分:1)

您可以重命名属性(Assigning to new variable names)并生成新对象。

y
const
    recieved = [{ name: "1PM Industries Inc ", series: [{ value: 0.0001, name: "2019-08-30" }, { value: 0, name: "2019-08-28" }] }],
    result = recieved.map(({ name: id, series }) => ({ 
        id, 
        data: series.map(({ value: x, name: y }) => ({ x, y }))
    }));

console.log(result);

答案 2 :(得分:1)

您可以使用map方法。

Grid

答案 3 :(得分:0)

您可以将for..in循环与hasOwnProperty()方法结合使用

使用递归获得更好的脚本