如果我构建一个对象数组。
var destinations = [{
id: '277',
title:'Alicante',
lat: '38.35782',
lng: '-0.5425632',
content: '<p>string</p>'
},{
id: '275',
title:'Amsterdam',
lat: '52.3745292',
lng: '4.7585347',
content: '<p>string</p>'
},{
id: '250',
title:'Belfast',
lat: '36.1673368',
lng: '27.6853392',
content: '<p>string</p>'
}, {
id: '263',
title:'Bergerac',
lat: '44.8519854',
lng: '0.4532777',
content: '<p>string</p>'
}]
如何使用循环并使用数据创建变量名称和属性?什么是迭代数组并创建变量的函数(我用来填充Google Map)。我正在阅读这么多代码示例,但我似乎无法做到正确。
我希望以下函数可以创建四个变量(marker277,marker275,marker250,marker263),其位置以类似的方式从数组中的对象获取,但它不起作用。
for (var i = 0, l = destinations.length; i < l; i++) {
var obj = destinations[i];
var marker[obj.id] = new google.maps.Marker({
position: {lat: obj.lat, lng: obj.lng}
});
}
提前感谢您的帮助。
答案 0 :(得分:0)
好吧,我认为标记lat long期望浮点值,所以你应该尝试使用parseFloat()。此外,您应该将标记存储在数组中以保留它,就像这样。
var markers = [];
for (var i = 0, l = destinations.length; i < l; i++) {
var obj = destinations[i];
var lat = parseFloat(obj.lat);
var long = parseFloat(obj.lng);
markers[obj.id] = new google.maps.Marker({
position: {lat: lat, lng: long}
});
}
答案 1 :(得分:0)
您的代码不会创建变量名称,但会尝试将标记设置为数组标记。你很可能想要有标记的地图
var markers = {};
for (var i = 0, l = destinations.length; i < l; i++) {
var obj = destinations[i];
markers[obj.id] = new google.maps.Marker({
position: {lat: obj.lat, lng: obj.lng}
});
}