繁体   English   中英

Javascript:循环遍历包含数组的对象数组

[英]Javascript: looping through an array of objects that hold arrays

在传单中,我制作了一个函数,该函数接受一个数组,该数组包含多个对象,每个对象包含一个标记数组和一个ID以标识组。

我有这个数组:

var markerGroupArray = [
{ features: [L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.'),
L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.'),
L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.'),
L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.')], id: 'Group 1'},

{ features: [L.marker([39.51, -105.02]).bindPopup('Somewhere else'),
L.marker([39.64, -104.99]).bindPopup('Somewhere else'),
L.marker([39.63, -104.8]).bindPopup('Somewhere else'),
L.marker([39.67, -105.23]).bindPopup('Somewhere else')], id: 'Group 2'}
];

我提供给此功能:

addOverlayMap: function (overlayMapArray) {
    for (var i = 0; i < overlayMapArray.length; i++)
    {
        var layerGroup = L.layerGroup();

        for (var j = 0; j < overlayMapArray[i][features].length; j++)
        {
            layerGroup.addLayer(overlayMapArray[i][features][j]);
        }

        this.overlayMapObject[overlayMapArray[i][id]] = layerGroup;
    }
    this.refreshLayerControl();
}

但是,我得到一个错误,即未定义“功能”键。 这是怎么回事?

尝试:

overlayMapArray[i]['features']

overlayMapArray[i][features].length应该是overlayMapArray[i].features.lengthfeatures周围没有[] )。 或者,如果愿意,也可以使用overlayMapArray[i]['features'].length (在JavaScript中,您可以选择其中之一)。

您的代码当前正在做的是尝试使用一个称为features的变量的值; 由于您没有,所以您会收到ReferenceError 通过切换为文字(我的第一个建议)或方括号符号和字符串(我的第二个建议),您可以指定属性名称features

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM