传递给函数时,JSON对象数组未定义

时间:2013-07-10 03:29:15

标签: javascript arrays

第一个函数从url获取json并将其推送到数组

var resultsArr = new Array();

// getResults()
// JSON response function -> takes uuid returned from search query
// and pings reponse url for any/all JSON objects of returned data
function getResults(req_uuid) {
    console.log("url fetched");
    $.getJSON( $SCRIPT_ROOT + "/respond?id=" + req_uuid, function(data) {
        console.log(data);
        resultsArr.push(data);
    });
}

我有另一个功能,只需点击一个按钮,就会以给定的间隔将uuid传递给getResults()。这一切都有效。我甚至将整个数组转换为字符串,并在调用相关函数之前将其附加到div中。 (这也有效)。我在调用之前记录了数组中的元素数量;

console.log( resultsArr.length + " items in array")

此日志= 4 items in array

然后调用该函数;

function showResults(array) {
    var index = array.length;
    console.log( index + " items in array");

}

这会返回undefined items in array。我感到非常困惑。

1 个答案:

答案 0 :(得分:1)

您希望在收到新数据后调用showResults()并将其推送到ajax回调中的数组中。

var resultsArr = new Array();

// getResults()
// JSON response function -> takes uuid returned from search query
// and pings reponse url for any/all JSON objects of returned data
function getResults(req_uuid) {
    console.log("url fetched");
    $.getJSON( $SCRIPT_ROOT + "/respond?id=" + req_uuid, function(data) {
        console.log(data);
        resultsArr.push(data);
        showResults(resultsArr);// <--- here
    });
}