-1

最初の関数は、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。私はひどく困惑しています。

4

1 に答える 1

1

新しいデータを受け取り、それを ajax コールバック内の配列にプッシュした後に呼び出すshowResults()必要があります。

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
    });
}
于 2013-07-10T03:47:33.697 に答える