javascript中的对象没有创建for循环

时间:2014-05-14 21:38:45

标签: javascript arrays object for-loop

所以我想创建一个对象(更像是地方),在我正在使用的谷歌地图插件中使用。我需要做的是创建数组“places”,我需要能够放置将使用jscript处理的所有属性,这是通过我从其他地方获取的JSON完成的,这是有效但填充阵列似乎是不可能的任务。事实是,我似乎无法创建数组,它只是搞乱一切,没有任何东西显示。

var places = [];
$.getJSON(url,function(data){
    $.each(data.lugar, function(i,user){
        places.push([user.latt.value, user.lng.value, user.nombre.value, user.direccion.value]);
        alert("Se añadio "+user.nombre);
    });
});

我正在尝试做一个假人只是为了看它是否适用于简单的FOR,但是它不起作用。

var places[];

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

    }
}

我不知道我错过了什么。正常的电话应该是:

 var places = [

    {
        canEdit: true,
        lat: 53.798823,
        lng:-1.5426760000000286,

    },
    {
        canEdit: true,
        lat: 53.79,
        lng: -1.59,
        name: "Somewhere",
        street: "Over the rainbow, Up high way",
        userData: 99
    }
];

2 个答案:

答案 0 :(得分:1)

您不正确地创建了数组变量:var places[];不是声明数组变量的正确方法,正确的语法应该是var places = [];。 Mozilla开发者网络article on Arrays提供了有关数组及其在Javascript中的使用的更多信息。

答案 1 :(得分:1)

我建议尝试使用$ .map(为此类做的),就像这样:

var places = $.map(data.lugar, function(i,user){
    return [user.latt.value, user.lng.value, user.nombre.value, user.direccion.value];
    // Do not check results on the UI thread here.
});
// check the results in on the UI thread here.