Struttura dati restituita da d3.csvParse
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
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.