5月 12, 2021 JavaScript

JavaScript の連想配列

連想配列とは

普通の配列は、0から始まる整数をキーにします。例えば、次のようになります。

const arr=[1,2,3,4];
arr[0]=5; 

連想配列は、整数の代わりに文字列をキーにすることができます。

const hash={};
hash["orange"]="みかん";
hash["apple"]="りんご";
hash["pear"]="なし";
console.log(hash);

もちろん、キーは重複することはできません。この例では、辞書のような連想配列を作成しています。

なお、キーには文字列しか使えません。例えば、何かのオブジェクトをキーにしたい場合には、Map という別のしくみを使います。

連想配列の正体

出力を見てみると、どうもオブジェクトのように見えます。そもそも、オブジェクトを作る時も同じように波かっこ{}を使いますよね。

連想配列の正体

ためしに、オブジェクトを作成して比較してみましょう。


const hash={};
hash["orange"]="みかん";
hash["apple"]="りんご";
hash["pear"]="なし";
console.log(hash);

const obj={};
obj.orange="みかん";
obj.apple="りんご";
obj.pear="なし";
console.log(obj);

chromeデベロッパツールのコンソール画面は次のようになりました。

連想配列とオブジェクトは違うのか

同じですね。つまり、連想配列というのは実態はオブジェクトであるということなわけです。したがって、連想配列のつもりで作成したものでも、オブジェクトと同様に扱うということができます。これは、次のようなコードの場合も全く同じです。

const obj=new Object();
obj.orange="みかん";
obj.apple="りんご";
obj.pear="なし";
console.log(obj);

ここまでで、連想配列とオブジェクトは同じものだとわかりました。であれば、オブジェクトで使える様々な操作、メソッドも利用できるということですね。

この記事は、ECMAScript 2015(ES6) を前提に書いています。古い実装では、異なる場合があります。