Von d3.csvParse zurückgegebene Datenstruktur
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
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.