Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
156
Help us understand the problem. What is going on with this article?
@glaytomohiko

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

More than 5 years have passed since last update.

こんにちは。

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

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

156
Help us understand the problem. What is going on with this article?
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
glaytomohiko
頑張るSEです。 Web、広告系の会社に所属しています。 引き続き、どうぞ、よろしくお願いいたします。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
156
Help us understand the problem. What is going on with this article?