【问题标题】:TypeError: variable is undefined - Google chartsTypeError:变量未定义 - Google 图表
【发布时间】:2017-02-21 21:27:35
【问题描述】:
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 的类型是未定义的。我尝试使用以下方法将其转换为数组:

dataArray = $.makeArray(sinAjax(0)) ;

但是,这只是将其转换为 javascript 对象。

如何将其转换为类型数组?

【问题讨论】:

    标签: arrays ajax charts typeerror google-visualization


    【解决方案1】:

    问题实际上出在我的函数 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;
    }
    

    【讨论】:

    • 同步调用是个坏主意。
    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 2021-03-17
    • 2015-07-25
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    相关资源
    最近更新 更多