配列/オブジェクトに格納されている特定のオブジェクトを選択できるように、ハッシュテーブルを使用しようとしています。ただし、オブジェクトをループする際に問題が発生します。
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
してデータを格納しているかがわかるようにundefined
、オブジェクトをループするときに取得しますpin
。
ループする正しい方法は何pin
ですか?
編集
だけでなく、 pin [6] =オブジェクトにし、それらのすべてのプロパティpin[6] = '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
は未定義を返します、そして私がconsole.log(marker)
代わりにそうするならば、私はの値を取得しますmarker.listing_id
。混乱してすみません!
私はそれをうまく動かすことができました$.each(markers, function(i, marker){});
が、なぜfor..in
上記がうまくいかないのですか?