我试图使用哈希表,以便选择存储在数组/对象中的特定对象。但是,我在遍历对象时遇到了问题。
var pins= {};
pins[6] = '6';
pins[7] = '7';
pins[8] = '8';
$('#result3').append('<div>Size: ' + Object.size(pins) + '</div>');
for(var i = 0; i < Object.size(pins); i++) {
    $('#result3').append('<div>' + pins[i] + '</div>');
}JSFiddle:http://jsfiddle.net/7TrSU/
正如您在使用对象TEST 3存储数据的pin中所看到的那样,在遍历对象pin时,我得到了undefined。
循环通过pin的正确方法是什么?
编辑
如果我不只是pin[6] = '6',而是让pin6 =一个对象,并且我想循环遍历它们的所有id属性,会发生什么?我正在做的事情的代码片段..。
for(var i = 0; i < json.length; i++) {
    markerId = json[i].listing_id
    // Place markers on map
    var latLng = new google.maps.LatLng(json[i].lat, json[i].lng);
    var marker = new google.maps.Marker({
                listing_id: markerId,
                position: latLng,
                icon: base_url + 'images/template/markers/listing.png',
    });
    markers[markerId] = marker;
}
for(var marker in markers) {
    console.log('marker ID: ' + marker.listing_id);
    mc.addMarker(marker);
}上面的console.log返回未定义的值,如果我选择console.log(marker),则得到marker.listing_id的值。抱歉我搞糊涂了!
我设法让它与$.each(markers, function(i, marker){});一起工作,但是为什么上面的for..in不能工作呢?
发布于 2012-04-08 11:52:53
function iterate(obj){
    var keys = Object.keys(obj);
    for(i in keys){
        doSomething(obj[keys[i]].id);
    }
}这在任何对象中的所有字段的id上迭代。
https://stackoverflow.com/questions/10062317
复制相似问题