170
161

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

こんにちは。

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

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

170
161
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
170
161

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?