Struttura dati restituita da d3.csvParse

Oct 12 2020

In d3.js la funzione csvParse funziona come:

d3.csvParse("foo,bar\n1,2\n2,3"); 
// [{foo: "1", bar: "2"}, {foo: "2", bar:"3"}, columns: ["foo", "bar"]]

Q1 : qual è il nome della struttura dei dati restituiti? soprattutto le proprietà "colonne"?

Al di fuori di d3.js, se lo faccio

var data = [{foo: "1", bar: "2"}, {foo: "2", bar:"3"}, columns: ["foo", "bar"]]
//uncaught syntaxerror unexpected token ':'

Q2 : perché l'errore? Come spostarsi?

Risposte

1 GerardoFurtado Oct 12 2020 at 05:16

L'output che stai vedendo è solo un normale array JavaScript ed columnsè semplicemente una proprietà di quell'array. In JavaScript, gli array possono avere proprietà.

Se dai un'occhiata al codice sorgente , vedrai questo:

var rows = []

E poi:

rows.columns = columns || [];

Ecco un esempio molto semplice:

const arr = [1, 2, 3, 4, 5];
arr.columns = "foo";
console.log(arr)

Guarda la console del tuo browser (non quella dello snippet), vedrai questo (in Chrome e Firefox, ma non in Safari):

[1, 2, 3, 4, 5, columns: "foo"]

Per quanto riguarda il tuo errore ...

// errore di sintassi non rilevato token imprevisto ":"

... tieni presente che questo è solo l'output nella console, che non è una notazione letterale array valida.