2017-02-16 2 views
0

Ich versuche, ein JSON-Ergebnis zu analysieren, aber ich wiederhole doppelte Werte in meinem Array. Es scheint, als ob der Code zweimal ausgeführt wird. Hier ist mein Code würde jedes FeedbackJavaScript getJSON gibt doppelte Werte im Array zurück

var channels = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas", "brunofin", "comster404"] 
var clientID = "######"; 
var allChannels = []; 
var feedReturn = []; 
$(document).ready(function() { 
    for (var i = 0; i < channels.length; i++) { 
     allChannels[i] = channels[i]; 
     //allChannels[i][0] = channels[i] 
     $.getJSON("https://api.twitch.tv/kraken/streams/" + channels[i] + "? 
      client_id = sbp1wnku2j32dtnjj4qefhslopxq8s ",function(data){ 
      $.each(data, function(i) { 
       if (data.stream == null) { 
        feedReturn.push(["Null", data._links.channel]); 
       } else { 
        feedReturn.push(["Not Null", data._links.channel]); 
       } 
       //console.log(data.stream); 
       // console.log(data._links.channel); 
       //feedReturn.push(data.stream,data._links.channel); 
      }) 
     }) 
} 
}); 
console.log(feedReturn); 
+0

Welche Fehlerbehebung wurde durchgeführt und welche ist die Frage? – charlietfl

Antwort

1

Sie rufen geschätzt werden $.each() auf dem data Objekt, das ein Array mit einer Länge gleich der Anzahl von Eigenschaften für das Objekt zurück. Da die zurückgegebenen API-Daten über zwei Eigenschaften (_links, stream) verfügen, wird die .push() 2 Mal für jeden API-Aufruf ausgeführt. Durch einfaches Entfernen der $.each() wird Ihr Problem mit doppelten Datensätzen in Ihrem Array gelöst.

$.getJSON("https://api.twitch.tv/kraken/streams/"+channels[i]+"?client_id=sbp1wnku2j32dtnjj4qefhslopxq8s",function(data){ 
    if(data.stream == null){ 

    feedReturn.push(["Null",data._links.channel]); 

    } else { 

    feedReturn.push(["Not Null",data._links.channel]); 
    } 
}); 
Verwandte Themen