Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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 使用for但不使用$。每个_Javascript_Php_Jquery_Arrays_For Loop - Fatal编程技术网

Javascript 使用for但不使用$。每个

Javascript 使用for但不使用$。每个,javascript,php,jquery,arrays,for-loop,Javascript,Php,Jquery,Arrays,For Loop,因此,我尝试用javascript填充一个映射,如下所示 { showOnLoad: places .... 它通过这样的for循环完成任务(它确实显示了标记),这是可行的 var places = []; for(var x= 0; x<10; x++){ places[x] = { canEdit: false, lat: 53.79+x, lng:-1.5426760000000286+x, name

因此,我尝试用javascript填充一个映射,如下所示

 { showOnLoad: places ....
它通过这样的for循环完成任务(它确实显示了标记),这是可行的

  var places = [];
  for(var x= 0; x<10; x++){
    places[x] = {
        canEdit: false,
        lat: 53.79+x,
        lng:-1.5426760000000286+x,
        name: "Somewhere "+x

    }
}
即使我试着这样做,它不会显示任何东西,即使我不使用我的变量,它也不会工作。。。像这样

var places = [];
$.getJSON(url,function(data){
var x = 0;
$.each(data.lugar, function(i,user){
    places[x] = {
        canEdit: false,
        lat: 53.79+x,
        lng:-1.5426760000000286+x,
        name: "Somewhere "+x
        }

        x++;
    });
});
我一无所获,我不知道我是否错过了什么。关于这一点我已经没有什么想法了

任何帮助都将不胜感激


谢谢

我猜
x
不在
$的变量范围内。each()
的回调函数。相反,为什么不直接依赖回调的参数1中设置的
i
索引:

$.each(data.lugar, function(i, user) {
    places[i] = {
        canEdit: false,
        lat: user.latt,
        lng: user.lng,
        name: user.name
    };
});

在使用数组之前,您需要等待
每个
函数处理完所有结果:

var places = [];
$.when(
$.getJSON(url, function (data) {
    var x = 0;
    $.each(data, function (i, user) {
        places[x] = {
            canEdit: false,
            lat: user.latt,
            lng: user.lng,
            name: user.name
        };
        x++;
    });
})).done(function () {
    //Here the array "places" is ready to be used
    alert('Hey!');
});

您意识到,
$.getJSON()
调用的结果不会立即可用,对吗?如果您尝试在
$.getJSON()
之后立即检查“places”数组,它将是空的。您从服务接收到的JSON是什么?我不知道,但我使用了promise().done(函数()但是我仍然没有得到任何东西,我不知道是否需要做其他事情。我尝试了你的解决方案,但我不知道我是否遗漏了其他东西,因为我使用后没有显示,我什么也没有。你确定没有错误吗?检查控制台(F12)是的,我得到了一个错误,它似乎就在新添加的行上。你可以在这里看到错误,我不知道,但它也指向JQuery库:S@EnriqueBravo好的,在这种情况下,你不能像我想的那样使用“承诺”,而是“当”方法。我已经更新了答案。@EnriqueBravo仍然不能使用这个新版本吗?
var places = [];
$.when(
$.getJSON(url, function (data) {
    var x = 0;
    $.each(data, function (i, user) {
        places[x] = {
            canEdit: false,
            lat: user.latt,
            lng: user.lng,
            name: user.name
        };
        x++;
    });
})).done(function () {
    //Here the array "places" is ready to be used
    alert('Hey!');
});