Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象中的For循环不起作用_Javascript_For Loop_Iteration - Fatal编程技术网

Javascript 对象中的For循环不起作用

Javascript 对象中的For循环不起作用,javascript,for-loop,iteration,Javascript,For Loop,Iteration,我有一个传单对象测试,看起来像这样 共有4050个元素,对于所有这些元素,我尝试运行一个循环并放置标签 var a = Object.keys(_test); console.log(a.length); j = 0; for (var i = 0; i < a.length - 1; i++) { var b = _test[a[i]]; var vdc = L.polygon(b._latlngs); vd

我有一个传单对象测试,看起来像这样 共有4050个元素,对于所有这些元素,我尝试运行一个循环并放置标签

    var a = Object.keys(_test);
    console.log(a.length);
    j = 0;
    for (var i = 0; i < a.length - 1; i++) {
        var b = _test[a[i]];
        var vdc = L.polygon(b._latlngs);
        vdc_name = b.feature.properties.NAME_4;
        var labelLocation = new L.LatLng(vdc.getBounds().getCenter().lat, vdc.getBounds().getCenter().lng);
        var labelTitle = new L.LabelOverlays(labelLocation, vdc_name);
        VDC_labels.addLayer(labelTitle);
        console.log(vdc_name, j);
        j++}
sidin1841,这意味着循环仅运行1841次。谁能帮我找出我做错了什么

我也尝试过这个,但结果是一样的

for (ath in _test) {
        var b = _test[ath];
        var vdc = L.polygon(b._latlngs);
        // console.log(i);
        // i++
        vdc_name = b.feature.properties.NAME_4; //label content
        var labelLocation = new L.LatLng(vdc.getBounds().getCenter().lat, vdc.getBounds().getCenter().lng);
        var labelTitle = new L.LabelOverlays(labelLocation, vdc_name);
        VDC_labels.addLayer(labelTitle);
    }
解决了。 实际上,问题在于数据,即在_测试对象中,1842元素是一个多多边形,与所有其他元素(多边形)不同,因此在访问中的坐标时

var b=_test[a[i];
var vdc=L.多边形(b._latlngs)


b没有属性_latlngs,因此循环中断。

需要确切知道您为变量a分配了什么。请制作一个JSFIDLE并发布。我已经上传了带有“标签问题”描述的代码。
for (ath in _test) {
        var b = _test[ath];
        var vdc = L.polygon(b._latlngs);
        // console.log(i);
        // i++
        vdc_name = b.feature.properties.NAME_4; //label content
        var labelLocation = new L.LatLng(vdc.getBounds().getCenter().lat, vdc.getBounds().getCenter().lng);
        var labelTitle = new L.LabelOverlays(labelLocation, vdc_name);
        VDC_labels.addLayer(labelTitle);
    }