連想配列

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var pets = new Array();
pets["Andy"] = "dog";
pets["Bill"] = "cat";
pets["Charlie"] = "elephant";
for (name i pets) {
document.write(name, ": ", pets[name], "<br>");
}
var pets = new Array(); pets["Andy"] = "dog"; pets["Bill"] = "cat"; pets["Charlie"] = "elephant"; for (name i pets) { document.write(name, ": ", pets[name], "<br>"); }
var pets = new Array();

pets["Andy"] = "dog";
pets["Bill"] = "cat";
pets["Charlie"] = "elephant";

for (name i pets) {
    document.write(name, ": ", pets[name], "<br>");
}

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var pets = new Array();
pets["Andy"] = "dog";
pets[1] = "cat";
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>"); }
var pets = new Array();

pets["Andy"] = "dog";
pets[1] = "cat";

for (name in pets) {
    document.write(name, ": ", pets[name], "<br>");
}

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var pets3 = new Array();
pets3[1] = "dog"; // 整数で代入
document.write(pets3[1], "<br>"); // 整数で参照 => "dog"
pets3["1"] = "cat"; // 文字列で代入
document.write(pets3[1], "<br>"); // 整数で参照 => "cat"
var pets3 = new Array(); pets3[1] = "dog"; // 整数で代入 document.write(pets3[1], "<br>"); // 整数で参照 => "dog" pets3["1"] = "cat"; // 文字列で代入 document.write(pets3[1], "<br>"); // 整数で参照 => "cat"
var pets3 = new Array();

pets3[1] = "dog";      // 整数で代入
document.write(pets3[1], "<br>");      // 整数で参照 => "dog"

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

やっぱり。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください