使用d3

时间:2017-03-19 04:21:18

标签: javascript csv d3.js

我正在尝试使用d3从tsv文件中获取字符串数组。我的目标是定义一个全局变量,它等于我的tsv fie中label列中包含的所有字符串。

当我尝试以下方法时 - 我在页面上看到NaN。使用d3,如何获取tsv列中包含的所有字符串并将其定义为数组?例如

labels = ["label1", "label2", label2",...]

  d3.tsv("newdata.tsv", function(error, data)
{
   var labels=0;
   data.forEach(function(d)
   {
     d.label = +d.label;
     labels = labels + d.label;
   })
   document.write(labels);
 });

1 个答案:

答案 0 :(得分:0)

  1. 您没有正确创建阵列。您应该将其声明为var labels = []

  2. 您没有正确地将值添加到数组中。您应该使用.push

  3. 您不需要+运算符,因为您只处理字符串。 +运算符将值强制转换为数字。
  4. 以下工作代码:

    d3.tsv("https://gist.githubusercontent.com/mbostock/3305937/raw/a5be7c5fd55c4fa0ca8a400cb68d658a40989966/data.tsv", function(error, data) {
      var labels = [];
      data.forEach(function(d) {
        d.x = d.x;
        labels.push(d.x);
      })
      console.log(labels);
    });
    

    JSFiddle - https://jsfiddle.net/cpdafLpf/