Javascript Google图表不接受格式正确的数组作为行数据
在我提问之前,我想指出的是,我尝试过这个答案,但它对我不起作用。这不是一个重复的问题 我正在将一个数组作为行数据插入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
未捕获错误:给定的每一行必须是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%的猜测。