Функция addRows () Google charts не хочет принимать массив

Я пытаюсь сделать график, но Google Карт продолжает бросать эту ошибку, когда я пытаюсь добавить строку:

Error: каждая заданная строка должна быть либо нулевой, либо массивом. @ ...корешарт.И. Яш:162

вот несколько примеров столбцов, которые я пробовал. Создание столбцов отлично работает и отображает пустой график, пока я не добавляю никаких строк.

var data = new google.visualization.DataTable();
        data.addColumn('number', 'timestamp');
        data.addColumn('number', 'JPY');
        data.addColumn('number', 'EUR');
        data.addColumn('number', 'SEK');
        data.addColumn('number', 'HKD');
        data.addColumn('number', 'CHF');
//So far so good

теперь, независимо от того, как я пытаюсь передать массив с addRows (), я получаю ошибку. У меня есть нашел похожие вопросы здесь, но все они потерпели неудачу по причинам искаженного кода или использовали другую методологию для передачи кода. Итак, вот упрощенный тестовый случай, который все еще терпит неудачу.

data.addRows([1,2,3,4,5,6]); //Breaks the chart

Я тоже пробовал:

var myrow = new Array(1,2,3,4,5,6);
data.addRows(myrow);

Я не вижу, как я могу сделать это более буквально массивом. Я также передал два сразу, потому что весь пример кода, похоже, передает несколько строк.

data.addRows([1,2,3,4,5,6],
             [7,8,9,10,11,12]);

все еще не удается.

2 ответов


легко. Метод addRows () ожидает, что вы предоставите массив массивов, а не один массив для одной строки и не отдельные параметры для каждой строки. См.пример в документации. Исправляя ваш пример, он должен выглядеть так:

data.addRows([[1,2,3,4,5,6], [7,8,9,10,11,12]]);

вы также можете использовать метод addRow (), который занимает всего одну строку за раз.


У меня была такая же проблема, когда я добавлял строки, используя цикл for, но тогда вы могли найти в документация сам, addRows() ожидать массив массивов, то, что вы пытаетесь сделать, может быть достигнуто с помощью простого addRow () без "S". addRow([1,2,3,4,5,6])