Структура данных, возвращаемая d3.csvParse
В d3.js функция csvParse работает так:
d3.csvParse("foo,bar\n1,2\n2,3");
// [{foo: "1", bar: "2"}, {foo: "2", bar:"3"}, columns: ["foo", "bar"]]
Q1 : Какое имя структуры возвращаемых данных? особенно свойства "столбцов"?
Вне d3.js, если я это сделаю
var data = [{foo: "1", bar: "2"}, {foo: "2", bar:"3"}, columns: ["foo", "bar"]]
//uncaught syntaxerror unexpected token ':'
Q2 : Почему ошибка? Как обойти?
Ответы
Результат, который вы видите, представляет собой обычный массив JavaScript и columnsявляется просто свойством этого массива. В JavaScript массивы могут иметь свойства.
Если вы посмотрите исходный код , вы увидите следующее:
var rows = []
А потом:
rows.columns = columns || [];
Вот очень простой пример:
const arr = [1, 2, 3, 4, 5];
arr.columns = "foo";
console.log(arr)
Посмотрите на консоль вашего браузера (не на фрагмент), вы увидите это (в Chrome и Firefox, но не в Safari):
[1, 2, 3, 4, 5, columns: "foo"]
По поводу вашей ошибки ...
// неперехваченный синтаксическая ошибка неожиданный токен ':'
... имейте в виду, что это всего лишь вывод на консоль, а не допустимая буквенная запись массива.