Javascript:在包含数组的对象数组中循环
在传单中,我制作了一个函数,它使用一个包含对象的数组,每个对象都包含一个标记数组和一个标识来标识组 我有这个阵列:Javascript:在包含数组的对象数组中循环,javascript,loops,leaflet,mapbox,Javascript,Loops,Leaflet,Mapbox,在传单中,我制作了一个函数,它使用一个包含对象的数组,每个对象都包含一个标记数组和一个标识来标识组 我有这个阵列: 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]).bin
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();
}
addOverlayMap:function(overlayMapArray){
对于(变量i=0;i
但是,我得到一个错误,没有定义“features”键。发生什么事了 试试看:
overlayMapArray[i]['features']
尝试:
overlymaparray[i][features]。长度
应为overlymaparray[i]。特征。长度
(无[]
围绕特征
)。或者,如果您愿意,overlymaparray[i]['features'].length
(在JavaScript中,您可以任意选择)
您的代码当前正在尝试使用名为
features
的变量的值;因为没有,所以会出现ReferenceError
。通过切换到文字(我的第一个建议)或括号表示法和字符串(我的第二个建议),您可以指定属性名称features
overlymaparray[i][features]。长度应该是overlymaparray[i]。features.length
(在features
周围没有[]
)。或者,如果您愿意,overlymaparray[i]['features'].length
(在JavaScript中,您可以任意选择)
您的代码当前正在尝试使用名为features
的变量的值;因为没有,所以会出现ReferenceError
。通过切换到文字(我的第一个建议)或括号表示法和字符串(我的第二个建议),您可以在引号中指定属性名称features
周围的特性,效果非常好!谢谢。引号中的周边功能非常有效!谢谢。谢谢你对问题的详细解释!感谢您对问题的详细解释!