Javascript Google图表不接受格式正确的数组作为行数据

Javascript Google图表不接受格式正确的数组作为行数据,javascript,arrays,google-visualization,Javascript,Arrays,Google Visualization,在我提问之前,我想指出的是,我尝试过这个答案,但它对我不起作用。这不是一个重复的问题 我正在将一个数组作为行数据插入Google图表中,但是我收到了错误未捕获错误:给定的每一行必须是null或数组。在控制台中 在控制台中记录我的阵列时,它看起来是这样的:[1,1.96,1.96,1.96]这与中显示的普通阵列格式完全相同,但仍被拒绝 为什么会这样?我试过很多东西,但都没能成功 这是我的密码: google.load('visualization', '1.1', {packages: ['lin

在我提问之前,我想指出的是,我尝试过这个答案,但它对我不起作用。这不是一个重复的问题

我正在将一个数组作为行数据插入Google图表中,但是我收到了错误
未捕获错误:给定的每一行必须是null或数组。
在控制台中

在控制台中记录我的阵列时,它看起来是这样的:
[1,1.96,1.96,1.96]
这与中显示的普通阵列格式完全相同,但仍被拒绝

为什么会这样?我试过很多东西,但都没能成功

这是我的密码:

google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);

function drawChart() {

    var data = new google.visualization.DataTable();
    var chartData = [];
    var json = $.getJSON('myjsonlink', function(data) {
        for (i = 0; i < data.length; i++)
        {
            chartData[i] = [];
            chartData[i][0] = parseInt(data[i].sales);
            chartData[i][1] = parseFloat(data[i].profit);
            chartData[i][2] = parseFloat(data[i].profit);
            chartData[i][3] = parseFloat(data[i].profit);
        }
        console.log(chartData[0]); // This prints out [1, 1.96, 1.96, 1.96]
    });

    data.addColumn('number', 'Hour');
    data.addColumn('number', 'Pageviews');
    data.addColumn('number', 'Sales');
    data.addColumn('number', 'Earnings in $AUD');

    data.addRows([
        chartData[0]
    ]);

    var options = {
        width: 450,
        height: 250
    };

    var chart = new google.charts.Line(document.getElementById('todays-total-sales'));

    chart.draw(data, options);
}
google.load('visualization','1.1',{packages:['line']});
setOnLoadCallback(drawChart);
函数绘图图(){
var data=new google.visualization.DataTable();
var chartData=[];
var json=$.getJSON('myjsonlink',函数(数据){
对于(i=0;i
您的
数据弄乱了一些东西。addRows([chartData[0]])。正如在
addRows(numOrArray)中所说的那样,
应该被赋予一个数字或一个数组来填充您的行,但是您在数组中赋予它一个数组,因此它不起作用。 删除图表数据[0]

坦率地说,我以为我明白我在说什么,但在开始打字后,我显然不明白。我在它工作的地方做了一个小动作,要么用
for循环填充行
并逐行填充所有内容,要么传递完整的变量
chartData
,而不是
chartData[0]
。看看吧


有更好理解的人会非常感激添加一个带有更好解释的回复。

我今天刚刚遇到了这个问题,注意到这个页面在Google中是错误的顶部

我的解决方案是数据库中的一些值为null,这些值被转换为空字符串

我使用服务器端逻辑生成JS代码。将空值合并为零可以解决我的问题


在反思中相当明显,但直到我将代码粘贴到CodePen中,我才明白

不知何故,这神奇地解决了问题。通过使用
data.addRows(chartData)
而不是
data.addRows([chartData[0]])尽管他们在技术上实现了相同的结果,但一个有效,另一个无效。我相信这可能来自
addRows
预期的多行,传递
chartData[0]
只验证为一行。可能,但这很奇怪,因为我将
chartData[0]
在数组中。但在该数组中仍然只应用了1个数组。也许
[chartData[0],chartData[1]]
会起作用吗?但正如我所说,这是100%的猜测。