161
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

【JavaScript】連想配列のkeyとvalueの取得

こんにちは。

僕は以前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 文には見慣れなければいけないかつ
反復しなきゃいけない模様です。

少しずつですが、ぐぐる力もでてきたかも。
それではこれからもよろしくお願いいたします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
161
Help us understand the problem. What are the problem?