0

ここで私が間違っていることを教えてください。私はその単純な問題を知っていますが、これに丸一日かかりました。私がやろうとしていたのは、jsonファイルからmessagesという配列に値を追加することだけでした.

    function get_message(params) {

    var messages = ["hello", "bb"]; // i have manually assigned the value here for   testing purpose
    $.getJSON("messages.json", function( json ) {
        var test="JSON Data: " + json.login.loginsuccess.excited.en[0] ; // this is working fine. just retrieving 1 value for testing 
        console.log(test); // it shows the output get from json file. this line is also fine
        messages.push(test);// here is the problem. why i am not being able to add value to this array messages?

    });
    alert(messages[2]);// it gives me out put undefined
    var index = Math.floor(Math.random() * messages.length);
    return messages[index];
}

ありがとう

4

2 に答える 2

0

これは、AJAX 呼び出しが非同期であるためです。データがメッセージ配列にプッシュされる前に、alert() 行が発火します。コードを移動して、コールバック関数内でアラートを表示してみてください。

于 2013-11-13T22:28:52.080 に答える