在数组元素之前添加文本

时间:2018-05-11 10:49:39

标签: javascript arrays d3.js

我目前正在使用d3.js进行数据可视化,其中我每季度都有GDP数据。数据如下所示:

[
    [
      "1947-01-01",
      243.1
    ],
    [
      "1947-04-01",
      246.3
    ],
    [
      "1947-07-01",
      250.1
    ]
 ]

我想要的是将其变成以下内容:

[
    [
      date: "1947-01-01",
      GDP: 243.1
    ],
    [
      date: "1947-04-01",
      GDP: 246.3
    ],
    [
      date: "1947-07-01",
      GDP: 250.1
]

我尝试这样做,但它将数组元素转换为字符串。

d3.json("data/GDP-data.json").then(function (dataTotal) {
    data = dataTotal.data;
    console.log(data);

    for(var i=0;i<data.length;i++){
        data[i]["0"] = new Date(data[i]["0"])
        data[i]["0"]="date: "+data[i]["0"];
        
        data[i][1] = "GDP: "+data[i][1];
    }
}

有没有办法不将每个元素转换为字符串,同时仍然在它之前添加文本?这会使调用某些数据点变得容易得多。

2 个答案:

答案 0 :(得分:2)

使用<changeSet id="changeSetId" author="John Doe"> <preConditions onFail="MARK_RAN"> <foreignKeyConstraintExists foreignKeyName="DummyFK1"/> </preConditions> <comment>Drop FK DummyFK1</comment> <dropForeignKeyConstraint baseTableName="DummyToken" constraintName="DummyFK1"/> </changeSet>

map

<强>演示

&#13;
&#13;
arr.map( s => ({ date : s[0], gdp : s[1] }) );
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用map来实现

&#13;
&#13;
var data = [
    [
      "1947-01-01",
      243.1
    ],
    [
      "1947-04-01",
      246.3
    ],
    [
      "1947-07-01",
      250.1
    ]
 ];
 
 var r = data.map(o=> ({date: o[0], GDP: o[1]}));
 
 console.log(r)
&#13;
&#13;
&#13;