在Javascript中填充数组

时间:2016-02-27 11:12:11

标签: javascript arrays push pop

如何在Javascript中填写这种类型的数据..

var neighborhoods = [
    {lat: 52.511, lng: 13.447},
    {lat: 52.549, lng: 13.422},
    {lat: 52.497, lng: 13.396},
    {lat: 52.517, lng: 13.394}
];

我试过这种方式,但没有发生

$.each(result.geoloc, function(index,geoloc) {
    geoloc_split=geoloc.Geoloc.split(',');
    // alert(geoloc_split[0]+","+geoloc_split[1]);
    var lat="lat: "+geoloc_split[0];
    var lng = "lng: "+geoloc_split[1];
    neighborhoods.push(lat,lng);
    geoloc_split="";
});

2 个答案:

答案 0 :(得分:3)

您只将值推送到数组。您需要推送新对象(例如,使用对象文字创建它)。此外,您需要将字符串值转换为float:

var lat = parseFloat(geoloc_split[0]);
var lng = parseFloat(geoloc_split[1]);
neighborhoods.push({
    lat: lat,
    lng: lng
});

在ES6中,您可以使用属性值简写:

neighborhoods.push({lat, lng});

答案 1 :(得分:1)

你应该这样做:

$.each(result.geoloc, function(index,geoloc) {
     geoloc_split=geoloc.Geoloc.split(',');

     neighborhoods.push({
         lat:parseFloat(geoloc_split[0]),
         lng:parseFloat(geoloc_split[1])
     });

     geoloc_split="";
});

因为你的邻域数组是一个对象数组,你需要用对象填充它。