Von d3.csvParse zurückgegebene Datenstruktur

Oct 12 2020

In d3.js funktioniert die Funktion csvParse wie folgt:

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

Q1 : Wie lautet der Strukturname der zurückgegebenen Daten? vor allem die "Spalten" Eigenschaften?

Außerhalb von d3.js, wenn ich das tue

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

F2 : Warum ist der Fehler? Wie komme ich herum?

Antworten

1 GerardoFurtado Oct 12 2020 at 05:16

Die Ausgabe, die Sie sehen, ist nur ein reguläres JavaScript- Array und columnseinfach eine Eigenschaft dieses Arrays. In JavaScript können Arrays Eigenschaften haben.

Wenn Sie sich den Quellcode ansehen , sehen Sie Folgendes:

var rows = []

Und dann:

rows.columns = columns || [];

Hier ist ein sehr einfaches Beispiel:

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

Wenn Sie sich die Konsole Ihres Browsers ansehen (nicht das Snippet), sehen Sie Folgendes (in Chrome und Firefox, aber nicht in Safari):

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

In Bezug auf Ihren Fehler ...

// Ungefangener Syntaxfehler Unerwartetes Token ':'

... denken Sie daran, dass dies nur die Ausgabe in der Konsole ist, keine gültige Array-Literal-Notation.