javascript变量问题

时间:2011-08-02 14:58:22

标签: javascript

$.getJSON("/data/data/com.android.tcptest/files/BPL.json", function(data) {
        var i = 0, dataSize = data.length, tmpArray = [];
        for(i; i < dataSize; i++){
            tmpArray.push ([data[i].Time.substring(0, data[i].Time.length -2).replace(/:/g, ""),data[i].Bid ]);
        }
        return tmpArray;
    });
    $.plot($("#chart"), [ tmpArray ]);  

如何在tmpArray函数之外使用getJSON()。我的程序不起作用。 谢谢!

3 个答案:

答案 0 :(得分:1)

getJSON块之外初始化tmpArray。

编辑:Quentin是对的,数组是空的。您还需要使请求同步。我写了以下示例,希望它有所帮助:http://jsfiddle.net/mXHfC/

答案 1 :(得分:0)

异步JavaScript和XML是异步的。

你不能从它返回,然后你可以从以下地址返回:

$('button').click(function () {
    return tmpArray;
});
$.plot($("#chart"), [ tmpArray ]);  /* Does this method really expect an array consisting of a single value that is another array? */

在HTTP响应到达(或单击按钮)之后,回调中的代码才会执行​​。

在回调中完成工作

$.getJSON("/data/data/com.android.tcptest/files/BPL.json", function(data) {
    var i = 0, dataSize = data.length, tmpArray = [];
    for(i; i < dataSize; i++){
        tmpArray.push ([data[i].Time.substring(0, data[i].Time.length -2).replace(/:/g, ""),data[i].Bid ]);
    }
    $.plot($("#chart"), [ tmpArray ]);  
});

答案 2 :(得分:0)

getJSON是异步的,你不能在返回函数之前使用数组!

$.getJSON("/data/data/com.android.tcptest/files/BPL.json", function(data) {
        var i = 0, dataSize = data.length, tmpArray = [];
        for(i; i < dataSize; i++){
            tmpArray.push ([data[i].Time.substring(0, data[i].Time.length -2).replace(/:/g, ""),data[i].Bid ]);
        }
        $.plot($("#chart"), [ tmpArray ]);  
        //return tmpArray;
    });