Estructura de datos devuelta por d3.csvParse

Oct 12 2020

En d3.js, la función csvParse funciona así:

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

P1 : ¿Cuál es el nombre de la estructura de los datos devueltos? especialmente las propiedades de las "columnas"?

Fuera de d3.js, si lo hago

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

P2 : ¿Por qué es el error? ¿Como navegar?

Respuestas

1 GerardoFurtado Oct 12 2020 at 05:16

La salida que está viendo es solo una matriz de JavaScript normal y columnses simplemente una propiedad de esa matriz. En JavaScript, las matrices pueden tener propiedades.

Si echas un vistazo al código fuente , verás esto:

var rows = []

Y entonces:

rows.columns = columns || [];

Aquí hay un ejemplo muy básico:

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

Mire la consola de su navegador (no la del fragmento), verá esto (en Chrome y Firefox, pero no en Safari):

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

Respecto a tu error ...

//SyntaxError no detectada: fichas inesperado ':'

... tenga en cuenta que esa es solo la salida en la consola, que no es una notación literal de matriz válida.