2017-09-17 15 views
1

私はJSONレスポンスのデータのみを使用できますが、JSONレスポンスがnullの場合にローカルのストアドアレイデータを使用しようとすると、配列の値は未定義になります...具体的には、JSON の応答にが含まれている場合、私はそれを検出できるように私の格納された配列名が表示されたいです。 私のコードを見てください。

$(document).ready(function() { 

    var baseUrl = "https://wind-bow.glitch.me/twitch-api/streams/"; 
    var streamers = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"]; 

    for (i=0; i<streamers.length; i++){ 

    var url = baseUrl+streamers[i]; 
    $.getJSON(url,function(data){ 
     if (data.stream === null){ 
    alert(streamers[i]+" is offline"); //<< this becomes undefined 
     } 
     else { 
    $('.stream').prepend(
    "<tr><td>" + data.stream.channel.display_name + " Channel <strong class='connection'>ONLINE</strong> <div class='desc'><p>now streaming"+ data.stream.channel.status+" </p></div> </td></tr>"); 
    alert(data.stream.channel.display_name + " is streaming "); // <<< this works 
    } 
}); 

} 

});

+0

* "ローカル保存された配列データ" *どのようなデータ? –

+0

これはvar streamers = ["ESL_SC2"、 "OgamingSC2"、 "cretetion"、 "freecodecamp"、 "storbeck"、 "habathcx"、 "RobotCaleb"、 "noobs2ninjas"]です。 –

答えて

0

はそれにあなたの応答を渡す機能を使用してみてください:

var baseUrl = "https://wind-bow.glitch.me/twitch-api/streams/"; 
 
var streamers = [ 
 
    "ESL_SC2", 
 
    "OgamingSC2", 
 
    "cretetion", 
 
    "freecodecamp", 
 
    "storbeck", 
 
    "habathcx", 
 
    "RobotCaleb", 
 
    "noobs2ninjas" 
 
]; 
 

 
function streamToTable(stream) { 
 
    $.getJSON(baseUrl + stream, function(data) { 
 
    var TR = ""; 
 
    if (data.stream === null) { 
 
     TR = "<tr><td>" + stream + "</td><td>OFFLINE</td></tr>" 
 
    } else { 
 
     TR = "<tr><td>" + data.stream.channel.display_name + " Channel </td><td><strong class='connection'>ONLINE</strong> <div class='desc'><p>now streaming " + data.stream.channel.status + " </p></div></td></tr>"; 
 
    } 
 
    $('.stream').prepend(TR); 
 
    }); 
 
} 
 

 
$(document).ready(function() { 
 
    streamers.map(streamToTable); 
 
});
td{border-bottom: 1px solid #ddd; vertical-align:top;}
<table class="stream"></table> 
 

 

 
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

+0

ありがとう、これは本当に動作します:) –

関連する問題