Projděte „Hashmap“ v JavaScriptu

Tuto metodu používám k vytváření umělých „hashmap“ v javascriptu. Vše, na co se snažím, jsou páry klíč|hodnota, skutečná doba běhu není důležitá. Níže uvedená metoda funguje dobře.

Existují nějaké další způsoby, jak to projít?

for (var i in a_hashMap[i]) {
    console.log('Key is: ' + i + '. Value is: ' + a_hashMap[i]);
} 

Narazil jsem na problém, kdy to po prvním klíči vypíše spoustu nedefinovaných klíčů, když pole obsahuje pouze jednu položku. Mám pocit, že je to proto, že kód je ve smyčce, která používá i, i když když sleduji ladění, nemělo by se to stát. Také nemohu změnit i, protože se zdá, že smyčka for vůbec nerozumí nahrazené var.

Někdo nějaké nápady?

Odpověď

for (var i in a_hashmap[i])

není správné. Mělo by to být

for (var i in a_hashmap)

což znamená „smyčka přes vlastnosti a_hashmap , přičemž každému názvu vlastnosti postupně přiřadíte i