Javascript 使用for但不使用$。每个
因此,我尝试用javascript填充一个映射,如下所示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
{ 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!');
});