2017-02-16 58 views
0

我想解析一個json結果,但我一直在我的數組中獲取重複值。它看起來像代碼運行兩次。這是我的代碼的任何反饋,將不勝感激JavaScript getJSON返回數組中的重複值

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

什麼疑難解答已經完成,什麼是問題? – charlietfl

回答

1

您的data對象,這將返回一個數組具有等於該對象上的屬性數的長度上調用$.each()。由於返回的API數據具有兩個屬性(_links,stream),因此每次API調用都會運行.push()兩次。只需刪除$.each()即可解決陣列中存在重複記錄的問題。

$.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]); 
    } 
});