みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

for~in文についてのinの役割は

いろいろサイトを調べてみたのですが、なかなかfor~in文について丁寧に説明しているサイトが見つからなかったのとこれが理解できないと先へ進めないのでこちらのサイトを使わせて頂きました。
テキストのソースコードは以下のとおりです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>連想配列</title>
</head>

<body bgcolor="#FFFFFF">
<script type="text/javascript">
var colors = new Object();
colors["white"] = "白色";
colors["red"] = "赤色";
colors["green"] = "緑色";
colors["yellow"] = "黄色";
//document.write("<h2>", colors["red"], "</h2>");

for (var eigo in colors) {
document.write("<h2>", eigo + " " + colors[eigo], "</h2>");
}
</script>
</body>
</html>


このfor~in文の中にいきなり
var eigo
という変数が現れ、そこにキーである英語で書かれた色が代入されているのがどうしてなのか分かりません。
やはり、これにはinが関わっているのでしょうか。
もちろん、これを実行すると
英語の色 キーで指定された日本語の色
が順番に表示されます。
何故いきなり宣言した変数eigoにキーが代入されるのかについて、もし説明して頂ける回答者様がいましたら、是非とも宜しくお願い致します。

投稿日時 - 2011-05-08 08:09:26

QNo.6722175

すぐに回答ほしいです

質問者が選んだベストアンサー

言語の文法上そうなっているだけですよ。
書き方は言語によって色々ですが、やっていることは大差ありません。

php ... foreach(連想配列 as $key => $value);
java ... for(変数 : 配列)
C# ... foreach(変数 in 配列)
javascript ... for(key in 配列)

投稿日時 - 2011-05-08 09:02:09

お礼

回答を頂き、感謝します。
様々なプログラミング言語の例を書いて頂き、とても理解しやすかったです。
これからは1つの決まり事として頭に入れておきます。
本当にありがとうございました。

投稿日時 - 2011-05-08 16:40:24

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

配列と、連想配列の違いです。
http://www.openspc2.org/JavaScript/kouza2007/array/hash/index.html
実務では、あまり、連想配列は使わないと思います。
for in で、連想配列の各要素が読み込まれるのです。
配列は、通常のfor
連想配列は、for in
で参照します。

投稿日時 - 2011-05-08 08:20:29

お礼

回答を頂き、感謝します。
これは決まり事であると覚えておけばよろしいのでしょうか。
アドバイスありがとうございました。

投稿日時 - 2011-05-08 16:38:00

あなたにオススメの質問