連想配列

Array の添字に整数(インデックス)じゃなくて文字列(キー)を使うと連想配列になる。

 var pets = new Array();
 
 pets["Andy"] = "dog";
 pets["Bill"] = "cat";
 pets["Charlie"] = "elephant";
 
 for (name in pets) {
   document.write(name, ": ", pets[name], "<br>");
 }

こりゃ気持ち悪い。整数の添字と混ぜるとどうなるんだ?

 var pets = new Array();
 
 pets["Andy"] = "dog";
 pets[1] = "cat";
 
 for (name in pets) {
   document.write(name, ": ", pets[name], "<br>");
 }

なんでもないかのように動く。
というか,pets[1](添字が整数)と pets["1"](添字が文字列)を区別していないような感じ。

 var pets3 = new Array();
 
 pets3[1] = "dog";                    // 整数で代入
 document.write(pets3[1], "<br>");    // 整数で参照 => "dog"
 
 pets3["1"] = "cat";                  // 文字列で代入
 document.write(pets3[1], "<br>");    // 整数で参照 => "cat"

やっぱり。