- ベストアンサー
for in [javascript] 使い方
- オブジェクトの内容を取り出す方法
- 指定したオブジェクトの要素を順番に取り出す方法
- 名前と電話番号の出力方法
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
なるほどー。 問題の意図がわかりました。 実際は例題のような構造のオブジェクトはあり得ません。(特にkeyに全角を用いるあたりが) この問題はfor inを理解しているかどうかのテストなので、ちょっと強引な構造なのかもしれませんね。 で、これ課題でしょうから、答えはご自身で発見された方がいいですよ。 その方が理解が深まります。 今更ですが、ヒントだけ言いますね。 以下の点に着目してください。 1. for inの中で使用する変数iには、実際は何が入ってくるのか探ってください。 alertとかconsole.logとかで簡単に監視できますよね? 2. 電話番号を取得できているには理由があります。 「なぜ名前が取れないか」ではなく、「なぜ電話番号が取れるのか」の理由を探ってください。 変数iに何が入ってるのかが分かれば、これも簡単なはずです。 1.と2.が分かれば、名前の取り出し方は自ずと導き出されると思います。 では、頑張ってください。
その他の回答 (2)
- tracer
- ベストアンサー率41% (255/621)
まず、customersの構成を教えて下さい。 たとえば、 customers[ { tel:"03-53xx-xxxx", name:"田中太郎" } ] こんな感じでしょうか? つぎに、関数outputが何をやってるか教えてください。 上のオブジェクトの例だと、 function output(obj){ alert(obj.name+"さんの番号は、"+obj.tel+"です。") } こんな感じだと正常に出力(alert)されるはずですが。
補足
すみません、回答有り難うございます。customersは以下です。 var customers = { "田中太郎":"03-53xx-xxxx", "田中二郎":"03-54xx-xxxx", "田中花子":"03-55xx-xxxx" }; tracerさんの予想のcustomersの定義ですと、わかりやすいのですが、問題の方のcustomersの定義は、一つの要素(?)に、名前と番号が入っているので、名前はいちいち手書きで書いて、するしかないのでしょうか? その手間を省くことってできますでしょうか?よろしくお願いします。
- H240S18B73
- ベストアンサー率65% (190/288)
iに入ってます
お礼
すみません、理解できなかったです。でも、答えだったのですね・・・。 回答有り難うございました。
お礼
そもそもオブジェクトというものの、理解が足りませんでした・・・。 オブジェクト キーと、値の組み合わせ(プロパティ)の入った箱 という感じでしょうか。 for in文の中の変数には、キーが入っている。オブジェクト名[変数]で値を取り出す。 大雑把な理解ができました。 ご解答有り難うございました。