こんにちは。
僕は以前PHPをかじっていたのですが、JavaScriptだと
連想配列の扱い方が結構異なる感触があり、なかなか手ごわいです。
最初のミス:
var customers = { "田中太郎":"03-53xx-xxxx", "田中二郎":"03-54xx-xxxx", "田中花子":"03-55xx-xxxx" };
var names = new Array() ;
names[0] = "田中太郎" ;
names[1] = "田中二郎" ;
names[2] = "田中花子" ;
for(var i = 0 ; i<names.length ; i++ ){
for(var j in customers){
alert( names[i] + "さんの番号は" + customers[j] + "です。") ;
}
}
田中さんがたくさん出てきました。
事故です。
ループの中でさらにループを持たせてたらそうですよね。
調べてみるとどうやらkeyで持ってこれるらしい。
次はこうやってみた。
for(key j in customers){
alert( key + "さんの番号は" + customers[j] + "です。") ;
}
非常に残念な結果でした。
どうやら
for in文はループをまわす回数を定義しなくていい。
というところまでこぎつけて、ようやく解決。
var customers = { "田中太郎":"03-53xx-xxxx", "田中二郎":"03-54xx-xxxx", "田中花子":"03-55xx-xxxx" };
for(key in customers){
alert(key + "さんの番号は、" + customers[key] + "です。") ;
}
for文とかなりおごっちゃになっていたようで、
連想配列なので、key と value を結びつけてあげればよかったんですね。
ここはほかの言語も同じですよね。
(そもそも配列につっこむ必要もなかった。)
ちょっとみたことなかったfor ~ in
文には見慣れなければいけないかつ
反復しなきゃいけない模様です。
少しずつですが、ぐぐる力もでてきたかも。
それではこれからもよろしくお願いいたします。