Javascript 显示阵列中至少一个联机项目

Javascript 显示阵列中至少一个联机项目,javascript,jquery,Javascript,Jquery,我有一个按距离排序的用户数组。我想显示5个最近的项目,但有时5个最近的项目都有“脱机”状态,在这种情况下,我想确保至少添加1个“联机”项目 这是我到目前为止的尝试,但不太奏效。它没有像我想要的那样显示5个“离线”项目加1个“在线”项目,而是显示了所有项目 var items = 0; var online = usersOnline(); var itemsOnline = 0; for (var i = 0; i < nearest.length; i++) { var item

我有一个按距离排序的用户数组。我想显示5个最近的项目,但有时5个最近的项目都有“脱机”状态,在这种情况下,我想确保至少添加1个“联机”项目

这是我到目前为止的尝试,但不太奏效。它没有像我想要的那样显示5个“离线”项目加1个“在线”项目,而是显示了所有项目

var items = 0;
var online = usersOnline();
var itemsOnline = 0;
for (var i = 0; i < nearest.length; i++) {
    var item = nearest[i];
    if ( items < 5 ) { 
        items++;
        if ( item.state != "offline" ) { itemsOnline++; }
        jQuery( "#leaflet-control-geosearch-results" ).append( "<li id='record-"+item.label+"'><label><input type='checkbox' class='cb' value='"+item.id+"'>&nbsp;<img src='img/presence/"+item.state+"_map.png' height='10px'> "+item.label+" ("+parseFloat(item.distance  / 1000).toFixed(2)+strings[strLang].nearestMetre+")</label><div class='icons'><a title='"+strings[strLang].nearestLocate+"' class='locate' href='"+item.label+"'><img src='img/icons/locate.png' height='15px' /></a>&nbsp;<a title='"+strings[strLang].routeGet+"' class='directions' href='"+item.label+"'><img src='img/icons/directions.png' height='15px' /></a></div><div class='clear'></div></li>" );
    }
}
while (( online > 0 ) && ( itemsOnline < 1 )) {
    for (var i = 0; i < nearest.length; i++) {
        var item = nearest[i];
        if ( item.state != "offline" ) { 

            itemsOnline++; }
            jQuery( "#leaflet-control-geosearch-results" ).append( "<li id='record-"+item.label+"'><label><input type='checkbox' class='cb' value='"+item.id+"'>&nbsp;<img src='img/presence/"+item.state+"_map.png' height='10px'> "+item.label+" ("+parseFloat(item.distance  / 1000).toFixed(2)+strings[strLang].nearestMetre+")</label><div class='icons'><a title='"+strings[strLang].nearestLocate+"' class='locate' href='"+item.label+"'><img src='img/icons/locate.png' height='15px' /></a>&nbsp;<a title='"+strings[strLang].routeGet+"' class='directions' href='"+item.label+"'><img src='img/icons/directions.png' height='15px' /></a></div><div class='clear'></div></li>" );
        }
    }                           
}   
var项=0;
var online=usersOnline();
var itemsOnline=0;
对于(变量i=0;i“+item.label+”(“+parseFloat(item.distance/1000).toFixed(2)+字符串[strLang].nearestmeter+””;
}
}                           
}   

您应该能够通过一次传递/循环完成整个过程:

尝试:

var项=0;
var online=usersOnline();
var itemsOnline=0;
对于(变量i=0;i=5){
//我们已经有5个项目,所以我们现在只对在线项目感兴趣。这个新项目是离线项目,所以跳过它
继续;
}
项目++;
jQuery(“#传单控件地理搜索结果”).append(“