2017-03-19 2 views
0

Ich versuche, ein Array von Zeichenfolgen aus einer TSV-Datei mit d3 zu bekommen. Mein Ziel ist es, eine globale Variable zu definieren, die allen Strings entspricht, die in der Spalte label in meiner TSV-Datei enthalten sind.Get Array von Zeichenfolgen aus TSV mit d3

Wenn ich die Methode unten versuche - alles, was ich sehe, ist NaN auf der Seite. Wie holt man mit d3 alle in einer tsv-Spalte enthaltenen Strings und definiert sie als Array? Zum Beispiel

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); 
}); 

Antwort

0
  1. Sie erstellen nicht Ihren Array richtig. Sie sollten es wie folgt deklarieren: var labels = []

  2. Sie fügen die Werte nicht korrekt zu Ihrem Array hinzu. Sie sollten verwenden .push

  3. Sie benötigen nicht die +-Operator, da Sie nur mit Zeichenfolgen beschäftigen. Der Operator + erzwingt einen Wert für eine Zahl.

Arbeits Code unten:

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/

+0

Dies funktioniert, aber ich bekomme nur eine Reihe von 'NaN'. Ich habe die Datei überprüft und diese Spalte enthält definitiv Zeichenfolgen. –

+0

Gibt es Gründe dafür, dass die Werte als "NaN" anstelle von Strings gelesen werden? –

+0

@the_darkside Entschuldigung, vergessen, den '+' Operator zu entfernen, den wir in diesem Fall nicht benötigen. – sparta93

Verwandte Themen