我有一个带有标记lat / lngs的对象数组,有时地址没有被地理编码所以我想跳过lat:0,lng:0。 我现在想要完成的是设置一个循环,以便循环遍历数组并找到第一个不为空的对象。
它不会显示地图,说它未定义。
这是我到目前为止所提出的。
var Points = [{
lat: 0,
lng: 0
}, {
lat: 42,
lng: -72
}, {
lat: 41,
lng: -73
}];
function initMap()
{
for (var i = 0; i < Points.length; i++)
{
if (Points[i].lat * Points[i].lng != 0)
{
map = new google.maps.Map(document.getElementById('map'),
{
center: new google.maps.LatLng(Points[i].lat, Points[i].lng),
zoom: 10,
scaleControl: true
})
break;
}
else
{
continue;
}
}
}
答案 0 :(得分:1)
使用array.filter
:
var Points = [{
lat: 0,
lng: 0
}, {
lat: 42,
lng: -72
}, {
lat: 41,
lng: -73
}];
/**
Given an object with `lat` and `lng` properties, return true if both `lat` and `lng` !== 0
- parameter p: the Point to test
- return: Bool true if both `lat` and `lng` !== 0
*/
function pointIsNonZero(p) {
return p.lat !== 0 && p.lng !== 0;
}
console.log(Points.filter(pointIsNonZero));