Structure de données renvoyée par d3.csvParse

Oct 12 2020

Dans d3.js, la fonction csvParse fonctionne comme:

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

Q1 : quel est le nom de la structure des données renvoyées? en particulier les propriétés "colonnes"?

En dehors de d3.js, si je le fais

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

Q2 : Pourquoi l'erreur? Comment se déplacer?

Réponses

1 GerardoFurtado Oct 12 2020 at 05:16

La sortie que vous voyez n'est qu'un tableau JavaScript normal et columnsest simplement une propriété de ce tableau. En JavaScript, les tableaux peuvent avoir des propriétés.

Si vous regardez le code source , vous verrez ceci:

var rows = []

Et alors:

rows.columns = columns || [];

Voici un exemple très basique:

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

Regardez la console de votre navigateur (pas l'extrait de code), vous verrez ceci (dans Chrome et Firefox, mais pas dans Safari):

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

Concernant votre erreur ...

// erreur de syntaxe non interceptée jeton inattendu ':'

... gardez à l'esprit que ce n'est que la sortie de la console, ce n'est pas une notation littérale de tableau valide.