gpt4 book ai didi

javascript - 简单 JSON 调用的 console.log() 错误行为

转载 作者:行者123 更新时间:2023-12-03 09:17:16 27 4
gpt4 key购买 nike

我初始化数组historyData=[0,0,...,0],然后处理一些JSON 文件并用结果填充数组。 Console.log-ing 数组内容给出 [0,0,...,0]。但是如果我从 firebug 控制台运行 console.log(historicalData) ,我会得到正确的内容。为什么?

   var d = new Date();
var m = d.getMonth();
var y = d.getYear() +1900;
var y2 = y-1;
var historicalData=[0,0,0,0,0,0,0,0,0,0,0,0]; //init step
var counter = 11;
var i;

for (i = m; i!= m || y!=y2; i--) {
if (i==0) {
i=12;
y = y-1;
}
var src = "http://192.168.183.135/incidents/affectedUsersJSON.php?month=".concat(i).concat("&year=").concat(y);;
(function (i,counter,historicalData) {
$.getJSON(src, function funct(data) {
count = Object.keys(data).length;
if (count ==1 ) {
historicalData[counter] = 0 //filling the array
}
else {
historicalData[counter] = count; //filling the array
}
counter = counter-1;
})
}(i,counter,historicalData));
counter = counter-1;
}
</script>
</head>

<body>
<div id="users">Users</div>
<script type="text/javascript">
console.log(historicalData); //console.log-ing the results: I get only ZEROS!
</script>
</body>
</html>

对控制台中的输出感到失望后,我从控制台本身运行“console.log(historicalData)”并且..我得到了正确的结果。为什么?

最佳答案

我相信 JSON 调用尚未完全返回。您需要设置回调

.done(function( data ) {

将 console.log 调用放在此处的结果上,您应该会得到您期望的结果。

给你引用

http://api.jquery.com/jquery.getjson/

关于javascript - 简单 JSON 调用的 console.log() 错误行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com