Перебор хеш-таблицы объектов

Я пытаюсь использовать хеш-таблицу, чтобы выбрать конкретный объект, хранящийся в массиве/объекте. Однако у меня возникла проблема с циклом через объект.

var pins= {};
pins[6] = '6';
pins[7] = '7';
pins[8] = '8';

$('#result3').append('
Size: ' + Object.size(pins) + '
'); for(var i = 0; i < Object.size(pins); i++) { $('#result3').append('
' + pins[i] + '
'); }

JSFiddle:http://jsfiddle.net/7TrSU/

Как вы можете видеть в TEST 3, который использует объект pinдля хранения данных, я получаю undefinedпри переборе объекта pin.

Как правильно пройти через pin?

РЕДАКТИРОВАТЬ

Что произойдет, если вместо pin[6] = '6'я сделаю pin[6] = объектом и захочу перебрать все их 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выше возвращает undefined, и если вместо этого я выполню console.log(marker), я получу значение marker.listing_id. Извините, я путаюсь!

Мне удалось заставить его работать с $.each(markers, function(i, marker){});, но почему for..inвыше не работает?

43
задан Nyxynyx 8 April 2012 в 11:44
поделиться