我已经动态创建了一个对象数组:
var labels = 'ABCD';
downloadUrl('http://www.example.com/locations.php', function(data) {
var xml = data.responseXML;
var markersElem = xml.documentElement.getElementsByTagName('marker');
Array.prototype.forEach.call(markersElem, function(markerElem) {
var id = markerElem.getAttribute('id');
var name = markerElem.getAttribute('name');
var address = markerElem.getAttribute('address');
var type = markerElem.getAttribute('type');
var point = {
lat: parseFloat(markerElem.getAttribute('lat')),
lng: parseFloat(markerElem.getAttribute('lng'))
};
dbRecords = {
'id': id,
'name': name,
'address': address,
'type': type,
'point': point,
};
markersDbTable.push(dbRecords);
});
});
console.log('markersDbTable: ', markersDbTable);
var markers = [];
var markersDbTable2 = JSON.parse(JSON.stringify(markersDbTable));
for (var i = 0; i < markersDbTable2.length; i++) {
console.log('sdfsdf');
markers.push(new google.maps.Marker({
position: markersDbTable2[i].point,
label: labels[i % labels.length]
}));
}
console.log('markersDbTable2: ', markersDbTable2); // values here
id,name等的值来自XMLHTTP请求。
如果我console.log()的markersDbTable的值长度大于1,但是如果我使用map(),forEach()和for()循环对其进行迭代,则它不会进入这些函数内。我什至尝试过
var markersDbTable2 = JSON.parse(JSON.stringify(markersDbTable));
和console.log()
的{{1}},它没有任何价值。
为什么?