2017-02-04 2 views
2

ich eine CSV-Datei zu laden, indem Sie d3.csv Funktiond3.js csv Laden - einfache Datenkonvertierung

d3.csv(files[0], 
    function (d) { 

     return { 
      col1: +d["col1"], 
      col2: +d["col2"], 
      col3: +d["col3"]    
     };   
    }, 
function(error, data) {...}); 

wo ich function(d) verwenden, um alle Daten zu Numerik zu konvertieren. Gibt es eine Möglichkeit, den Code zu vereinfachen und alle Spalten zu verarbeiten, ohne sich explizit auf deren Namen zu beziehen?

+0

Hey kannst du ein bisschen erklären, was du eigentlich erreichen willst und das Datenformat, das du in die Variable d bekommst. –

+0

Ich lade eine CSV-Datei, alle Nummern. Um als Zahlen erkannt zu werden, muss ich diese + = Umwandlungsanweisungen ausführen, es funktioniert gut, aber ich würde es gerne so machen, dass ich die Spaltennamen nicht explizit erwähne. – Alex

Antwort

3

Sie möchten das gleiche wiederholt tun. Dies erfordert eine Schleife (z. B. eine For-Schleife oder eine Karte).

function (d) { 
    var result = {}; 
    for (key in d) { 
    result[key] = +d[key]; 
    } 
    return result; 
} 
+0

Großartig! Noch eine Frage: Kann ich diesen Code in mein drittes Argument ('function (error, data)') einfügen? – Alex

+1

Im Allgemeinen können Sie innerhalb der Callback-Funktionen tun, was Sie wollen, denn das ist einfach JavaScript. Also ja, du kannst das tun. Konvertierungen werden jedoch normalerweise in der Accessor-Funktion ausgeführt. – Bengt

Verwandte Themen