动态创建的对象的Javascript数组无法迭代

时间:2019-05-29 02:45:12

标签: javascript

我已经动态创建了一个对象数组:

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}},它没有任何价值。

为什么?

0 个答案:

没有答案