キアズマブログ

連想配列とは 

配列には別の配列を入れることができる。 サンプル

var lennon = Array("ジョン",1940,false);
var beatles = Array();
beatles[0] = lennon;
alert(lennon);
alert(beatles[0][0]);
alert(beatles[0][1]);
alert(beatles[0][2]);

この方法で、配列beatlesの最初の要素の値は、それ自体が配列となった。配列の各要素の値を取り出すには、ブラケットを追加する。beatles[0][0]の値は"ジョン"である。しかし配列beatlesから値を取り出すには、インデックス番号を覚える必要があり、非効率である。

beatlesという配列は、数値添字配列(numeric array)の一例。各要素のインデックスは数値で、配列に要素が追加されるごとにその値が増大する。

最初のインデックスは0、2番目の要素のインデックスは1、以下同様。

配列の値を指定するのみでは、その配列は数値添字配列になり、各要素のインデックスが自動的に作成され更新される。

このような振る舞いは、各要素のインデックスを指定することで、変更させることができる。

インデックスの指定に使えるのは、数値に限らない。文字列をインデックスに使うことも可能。

これを連想配列(associative array)という。 サンプル

var lennon = Array();
lennon["name"] = "ジョン";
lennon["year"] = 1940;
lennon["living"] = false;
alert(lennon["name"]);
alert(lennon["year"]);
alert(lennon["living"]);
for (var i in lennon) {
  alert(lennon[i]);
}

for~inについて参考

JavaScript の配列と連想配列の違い - IT戦記

すべての配列は連想配列になる。数字添字配列のインデックスはたまたま自動的に作られるに過ぎない。それぞれのインデックスは特定の値と結びついているので、数字添字配列もほんとうは連想配列の一例に過ぎない。

連想配列を使うと、名前で要素を参照できる。スクリプトを読みやすくするのに役立つ。

連想配列を用いて、配列に別の配列を入れた例 サンプル

var mukai = Array();
mukai["name"] = "向井秀徳";
mukai["year"] = 1973;

var yoshikane = Array();
yoshikane ["name"] = "カシオマン";
yoshikane ["year"] = 1974;

var matsushita = Array();
matsushita ["name"] = "柔道二段";
matsushita ["year"] = 1969;

var yoshida = Array();
yoshida ["name"] = "吉田一郎";
yoshida ["year"] = 1982;

var zazenboys = Array();
zazenboys["vocalist"] = mukai;
zazenboys["guitar"] = yoshikane;
zazenboys["drums"] = matsushita;
zazenboys["bass"] = yoshida;

for (var i in zazenboys) {
  alert(zazenboys[i]["name"]);
}

for (var i in zazenboys) {
  alert(zazenboys[i]["year"]);
}

コメント