我正在尝试解析 json 结果,但我不断在数组中获取重复的值。看起来代码运行了两次。这是我的代码,如有任何反馈,我们将不胜感激
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);
最佳答案
您正在对 data
对象调用 $.each()
,这将返回一个长度等于该对象的属性数量的数组。由于返回的 API 数据有两个属性(_links、stream),因此每次 API 调用都会运行 .push()
2 次。只需删除 $.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]);
}
});
关于JavaScript getJSON 返回数组中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42286860/