Javascript 如何根据GeoJSON属性中的ID号设置下拉列表项的顺序

Javascript 如何根据GeoJSON属性中的ID号设置下拉列表项的顺序,javascript,leaflet,Javascript,Leaflet,这是我的小提琴: 我需要根据GeoJSON文件中的ID号组织选择器中项目的顺序。它是“我的代码”的一部分,其中项目显示在列表中: map.on("layeradd", function(e) { if(!e.layer.options) { return; } if((e.layer.options.id != "markerLayer1") && (e.layer.options.id != "markerLayer2")) { retur

这是我的小提琴: 我需要根据GeoJSON文件中的ID号组织选择器中项目的顺序。它是“我的代码”的一部分,其中项目显示在列表中:

map.on("layeradd", function(e) {
    if(!e.layer.options) {
    return;
  }

    if((e.layer.options.id != "markerLayer1") && (e.layer.options.id != "markerLayer2")) {
    return;
  }

  var markers = e.layer.getLayers();

  var mySelector = $("#mySelector");

  for(var i = 0; i < markers.length; i++) {
    mySelector.append("<option value='" + L.stamp(markers[i]) + "'>" + markers[i].feature.properties.name + "</option>");
  }
});
map.on(“layeradd”,函数(e){
如果(!e.layer.options){
返回;
}
如果((e.layer.options.id!=“markerLayer1”)&&(e.layer.options.id!=“markerLayer2”)){
返回;
}
var markers=e.layer.getLayers();
var mySelector=$(“#mySelector”);
对于(var i=0;i
尝试使用:

map.on(“layeradd”,函数(e){
// ...
var markers=e.layer.getLayers();
//获取下拉列表
var mySelector=$(“#mySelector”);
标记.排序(函数(a,b){
//获取ID,并将其解析为int
var-aId=parseInt(a.feature.properties.id,10),
bId=parseInt(b.feature.properties.id,10);
返回援助<投标?-1:aId>投标?1:0
}).forEach(功能(标记器){
mySelector.append(“”)
+marker.feature.properties.id//我添加了标记id
+ '. ' 
+marker.feature.properties.name
+ "");
})
});

map.on("layeradd", function(e) {
  // ...
  var markers = e.layer.getLayers();

  // Get the dropdown
  var mySelector = $("#mySelector");

  markers.sort(function(a,b) {
    // get the ids, and parse them as int
    var aId = parseInt(a.feature.properties.id,10),
        bId = parseInt(b.feature.properties.id,10);
    return aId < bId ? -1 : aId > bId ? 1 : 0
  }).forEach(function(marker) {
    mySelector.append("<option value='" 
        + L.stamp(marker) + "'>" 
        + marker.feature.properties.id // I added the marker id
        + '. ' 
        + marker.feature.properties.name 
        + "</option>");
  })
});