jquery循环添加到变量

时间:2015-01-22 10:20:18

标签: jquery loops variables distance

我有一个像这样的变量

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。

对不起我的错误解释,但我希望你理解我。

3 个答案:

答案 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,谷歌翻译翻译它让你不明白然后我们责怪谷歌翻译哈哈:)