I'm getting TypeError: dataArray is undefined:
for (var i=0; i < dataArray.length; i++)
这是我的代码:
var dataArray = sinAjax(0) ;
var gdata = new google.visualization.DataTable( );
//add column labels
gdata.addColumn ('number', 'x');
gdata.addColumn ('number', 'sinx');
//add rows
for (var i=0; i < dataArray.length; i++)
{
delete dataArray[i].location;
delete dataArray[i].outcome_status;
var row = [];
for (var item in dataArray[i])
{
row.push(dataArray[i][item]);
}
gdata.addRow(row);
}
函数sinAjax(0)返回一个数组数组,我将其用作谷歌图表点。我必须单独添加列,因为它们不在数组中。
编辑:
我现在发现dataArray的类型是undefined。我尝试使用以下方法将其转换为数组:
dataArray = $.makeArray(sinAjax(0)) ;
然而,这只是将其转换为javascript对象。
如何将其转换为类型数组?
答案 0 :(得分:0)
问题实际上是我的函数sinAjax(0)
,它是一个ajax调用,当我需要更高级别时,我在成功函数中使用return
。
旧代码:
function sinAjax(xVal)
{
var vArrTestY;
$.ajax ( {
async: false,
type: "POST",
global: false,
url: "PHP/calcsin.php",
data: { x : xVal } ,
//dataType: "json",
success: function (response)
{
console.log("Response");
console.log(response );
vArrTestY = JSON.parse(response);
return vArrTestY;
}
} ) ;
}
新代码:
function fSinAjax(xVal)
{
var vArrTestY;
$.ajax ( {
async: false,
type: "POST",
global: false,
url: "PHP/calcsin.php",
data: { x : xVal } ,
//dataType: "json",
success: function (response)
{
console.log("Response");
console.log(response );
vArrTestY = JSON.parse(response);
}
} ) ;
return vArrTestY;
}