Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使我按下';对象';对它_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 即使我按下';对象';对它

Javascript 即使我按下';对象';对它,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一段代码,可以从服务器读取一些ajax(这一点很有效) var self = this; var serverItems = new Array(); var playersOnlineElement = $("#playersOnline"); function DataPair(k, v) { this.key = k; console.log("new datapair: " + k + ", " + v); this.value = v; } DataPa

我有一段代码,可以从服务器读取一些ajax(这一点很有效)

var self = this;
var serverItems = new Array();
var playersOnlineElement = $("#playersOnline");

function DataPair(k, v) {
    this.key = k;
    console.log("new datapair: " + k + ", " + v);
    this.value = v;
}

DataPair.prototype.getKey = function() {
    return this.key;
}

DataPair.prototype.getValue = function() {
    return this.value;
}

$.getJSON("http://127.0.0.1", function(data) {
    $.each(data, function(key, val) {
        var pair = new DataPair(key, val);
        self.serverItems.push(pair);
    });
});

console.log(serverItems.length); //Problem is here
for (var i = 0; i < serverItems.length; i = i + 1) {
    var dpair = serverItems[i];
    if (dpair.getKey() === "playersOnline") {
        self.playersOnlineElement.text("Players Online: " + dpair.getValue());
    }
}
var self=this;
var serverItems=new Array();
var PlayerOnline元素=$(“#PlayerOnline”);
函数数据对(k,v){
this.key=k;
log(“新数据对:“+k+”,“+v”);
该值=v;
}
DataPair.prototype.getKey=函数(){
返回此.key;
}
DataPair.prototype.getValue=函数(){
返回此.value;
}
$.getJSON(“http://127.0.0.1,函数(数据){
$。每个(数据、函数(键、值){
var对=新数据对(键,val);
self.serverItems.push(成对);
});
});
log(serverItems.length)//问题就在这里
对于(变量i=0;i
数据对和JSON被加载,但当它们被推送到数组时,它似乎不起作用。我尝试使用self.serverItems和just-serverItems,因为netbeans向我展示了如果我只使用serverItems,变量的范围是好的,但是我有点困惑为什么这不起作用。有人能帮我吗

我把评论放在错误的地方。serverItems.length为0,即使在DOM树中的浏览器中调试时,它有一个包含所有数据的数组serverItems


假设此serverItems位于另一个作用域中,而不是我要获取长度时调用的作用域?

将此代码添加到成功部分,因为它是异步的

for (var i = 0; i < serverItems.length; i = i + 1) {
    var dpair = serverItems[i];
    if (dpair.getKey() === "playersOnline") {
        self.playersOnlineElement.text("Players Online: " + dpair.getValue());
    } 
for(变量i=0;i

$.getJSON(“http://127.0.0.1,函数(数据){
$。每个(数据、函数(键、值){
var对=新数据对(键,val);
self.serverItems.push(成对);
对于(变量i=0;i
将此代码添加到成功部分,因为它是异步的

for (var i = 0; i < serverItems.length; i = i + 1) {
    var dpair = serverItems[i];
    if (dpair.getKey() === "playersOnline") {
        self.playersOnlineElement.text("Players Online: " + dpair.getValue());
    } 
for(变量i=0;i

$.getJSON(“http://127.0.0.1,函数(数据){
$。每个(数据、函数(键、值){
var对=新数据对(键,val);
self.serverItems.push(成对);
对于(变量i=0;i
检查浏览器控制台中是否有任何错误。。没有错误,除数组始终为0外,所有内容均按预期工作。@icke答案在那里,谢谢:)检查浏览器控制台中是否有错误。。没有错误,除数组始终为0外,所有内容均按预期工作。@icke答案在那里,谢谢:)非常感谢,我不知道为什么我没有这样做想想看。它是有效的:)我会在允许的情况下将你的答案标记为答案。没问题,很高兴它有帮助。thnx很多,lol。花了大约半个小时调试类似的代码段…(可能我应该更频繁地使用js^)非常感谢,我不知道为什么我没有想到这一点。它是有效的:)我会在允许的情况下将你的答案标记为答案。没问题,很高兴它有帮助。thnx alot,lol。花了大约半个小时调试类似的代码段…(可能我应该更频繁地使用js^)