Google图表的addRows()函数不希望接受数组

时间:2013-06-17 16:50:48

标签: javascript arrays google-visualization

我正在尝试制作折线图,但是当我尝试添加一行数据时,Google Charts不断抛出此错误:

  

错误:给定的每一行必须为null或数组。 @ ... corechart.I.js: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 个答案:

答案 0 :(得分:19)

很容易。 addRows()方法要求您提供一个数组数组,而不是一行的单个数组,而不是每行的单独参数。请参阅文档中的the example。修复你的例子,它应该是这样的:

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

您可能也更喜欢使用addRow()方法,该方法一次只能使用一行。

答案 1 :(得分:2)

我在使用for循环添加行时遇到了同样的问题,但是你可以在documentation本身找到,addRows()期望数组的数组,你想要做的事情可以通过简单实现addRow()没有'S'。 addRow([1,2,3,4,5,6])