SyntaxError:缺少;在for循环内部时的before语句

SyntaxError: missing ; before statement when inside for loop

本文关键字:内部 before 语句 循环 for 缺少 SyntaxError      更新时间:2023-09-26

好吧,这个有标题的问题可能已经问过了,但我不明白为什么不会出现。。

我只需要在循环运行时增加markers,并添加vectorSource.addFeature(marks[i]);但只有抛出错误。。为什么?

        var markers = [];
          for (var i = 0; i < jsonlen; i++) {
            var item = response[i];
            var markers[i] = new ol.Feature({  
             geometry: new ol.geom.Point(ol.proj.transform([item.lon, item.lat], 'EPSG:4326', 'EPSG:3857')),
            name:'Null Island',
            population: 4000,
          })
          vectorSource.addFeature(markers[i]);
          }

类似的抛出错误

SyntaxError: missing ; before statement
    var markers[i] = new ol.Feature({

更新:

很抱歉发布了完整的代码,我只需要清除这个错误。。

 <script type="text/javascript">
    $.ajax({
      url:'parser', success:function(response){
        $(document).ready(function(){
          var jsonlen = response.length - 1;
            var vectorSource = new ol.source.Vector({
            // empty vector
          })
          var markers = [];
          for (var i = 0; i < jsonlen; i++) {
            var item = response[i];
            var markers[i] = new ol.Feature({  
             geometry: new ol.geom.Point(ol.proj.transform([item.lon, item.lat], 'EPSG:4326', 'EPSG:3857')),
            name:'Null Island',
            population: 4000,
            rainfall:500
          });
          vectorSource.addFeature(markers[i]);
          }
          //console.debug(response)
          // icon feature started

          //create the style
          var iconStyle = new ol.style.Style({
            image: new ol.style.Icon(/**@type {olx.style.IconOptions}*/({
              anchor: [0.5, 46],
              anchorXUnits: 'fraction',
              anchorYUnits: 'pixels',
              opacity: 0.75,
              src: 'http://ol3js.org/en/master/examples/data/icon.png'
            }))
          });
          //add the feature vector to the layer vector, and apply a style to whole layer
          var vectorLayer = new ol.layer.Vector({
            source: vectorSource,
            style: iconStyle
          });
          var map = new ol.Map({
            layers: [new ol.layer.Tile({ source: new ol.source.OSM() }), vectorLayer],
            target: document.getElementById('map'),
            view: new ol.View({
              center: [0, 0],
              zoom: 3
            })
          });

        })
      }
    })    
</script>

您正试图在数组中声明一个元素。

var markers[i] = ... 行中删除var关键字

您已经声明了数组,不需要再声明它的元素了。