6月 052012
 

JavaScriptのことで、気になったことがあったので書きます。さっきまで、そのせいで止まってました。

オブジェクトを格子状にした時、どうやって子のオブジェクトを
取得するか。

例えば、こんなオブジェクトがあったとします。

var data = {
  "mobile" : {
    "title" : "モバイル",
  }
  "web" : {
    "title" : "ウェブ",
  }
}

まあこれはjsonデータっぽいのです。たまたまこうなっちゃいました。prototypeと似てますよね。
これを、ループで取得したい場合です。
例えば、
mobile – モバイル
web – ウェブ
の様に。
まず一瞬思いつくのはforでlength分、回すことでしょうか。しかしながら、オブジェクト型はlengthが反映できません。もしかしたら出来るかもですが、探しても出て来なかった。
次にfor inを考えますね。これは、検索してたら出てきましたw
それで、やってみたら。

for(obj in data) {
  console.log(obj);
}

結果:
mobile
web

と出ます。一瞬「いけた!」と思ったわけですが、取得できていたのは文字列だけ。
titleも出したいんだけど、obj.titleでは出ない・・・

それで閃いた結果が↓

for(obj in data) {
  console.log(obj);
  console.log(data.obj.title);
}

結果:
mobile
モバイル
web
ウェブ

と、出来ました!多分みなさんこんなこと無いと思いますけど・・・一応共有します。

ではではー。

Pocket

 Posted by at 9:21 PM

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*