我有一个像这样的变量
var closestMarkers = this.FindClosestMarkers(
geoLocation.lat(),
geoLocation.lng(),
this.distance
);
我的问题是这个变量可以是'0'。我想创建一个循环,检查closestMarkers
是否为0,如果它为0,我想添加+50到距离。像这样的东西
if (closestMarkers.length === 0){
var closestMarkers = this.FindClosestMarkers(
geoLocation.lat(),
geoLocation.lng(),
parseInt(this.distance)+50
);
}
我的问题是,如果closestMarkers
为0,它只会在距离上加50,但在closestmarkers
之后仍然可以为0,如果在指定的距离内仍然找不到标记。我想创建一个循环,在closestMarkers
不再为0之前将距离增加50。
对不起我的错误解释,但我希望你理解我。
答案 0 :(得分:1)
您可以使用三元运算符:
var closestMarkers = closestMarkers.length !== 0 ?
this.FindClosestMarkers(geoLocation.lat(), geoLocation.lng(), this.distance)
:
this.FindClosestMarkers(geoLocation.lat(),
geoLocation.lng(), parseInt(this.distance)+50);
答案 1 :(得分:0)
if (closestMarkers.length === 0){
this.distance += 50;
var closestMarkers = this.FindClosestMarkers(
geoLocation.lat(),
geoLocation.lng(),
this.distance
);
}
我认为你不会在总距离上加上+50。因此,您需要在其使用范围之外的地方增加它。
如果要检查最大距离内的标记,请使用:
tmp_distance = 0;
max_distance = 1000;
while ((closestMarkers.length === 0) && (tmp_distance < max_distance )){
tmp_distance += 50;
closestMarkers = this.FindClosestMarkers(
geoLocation.lat(),
geoLocation.lng(),
tmp_distance
);
}
您还需要从内部{}移除 var ,我认为它会创建一个局部变量,但不会影响主 nearestMarkers 变量。
答案 2 :(得分:0)
@salivan问题是我有一张谷歌地图,其中打印出地理位置。但是,如果我发现自己位于世界上某个地方,如果用户在下拉列表中选择的半径范围内没有任何位置,则此结果可能为空。 50km,100km,500km所以为了避免地点的结果变空,所以我想如果最接近的标记是0,我想要距离最近的标记不再是0的50km距离,这最终可能是我放50km 500次无论如何最近的标记不再是0,谷歌翻译翻译它让你不明白然后我们责怪谷歌翻译哈哈:)