JavaScriptでコレクションを扱うもうひとつの方法は、連想配列、つまりハッシュテーブルである。
実は、JavaScriptでいう「オブジェクト」は既に連想配列としての機能を持っている。
JavaでいうところのHashMapのようなものである。
それでは、連想配列の使い方について見ていく。
連想配列を宣言して初期化する
以下のような形が基本となる。
// その1 単純にObjectをnewする var hash1 = new Object(); // その2 オブジェクトリテラルを使う var hash2 = {"001":"bob", "002":"John", "003:Alice"};
その2で、キーと値の組み合わせの列を{}で括る書き方をオブジェクトリテラルという。
「var hash2 = {}」とした場合は「new Object()」とするのと同じことである。
連想配列に要素を追加する
以下のようにする。
// その1 インデクサに任意のキーを指定して要素を代入する hash1["key1"] = "value1"; // その2 ドットの後にキー名を指定して要素を代入する hash1.key2 = "value2";
キーの型は文字列でも数値でも良い。ただし、数値の場合、その2の書き方では上手くいかないようだ。
JavaScriptでは、このようにしてオブジェクトに追加したキーのことを「プロパティ」と呼ぶ。
連想配列から要素を削除する
delete句を使い、以下のように書く。
// その1 インデクサを指定する delete hash1["key1"]; // その2 プロパティを指定する delete hash1.key2;
連想配列を列挙する
for-in文を使い、以下のように書く。
for( var key in hash1 ){ document.write(key + ":" + hash1[key] + "<br>"); }
for-in文はオブジェクトに追加されたキー(プロパティ)の一覧を列挙する。
以上が、JavaScriptにおける連想配列の基本的な使い方となる。