2012-02-17 14 views
1

は...Javascriptのループは、私はこのように書かjavascript配列を持つ配列

var json = [ 
    {"id":"1", "title":"Test 1", "comment":"This is the first test"}, 
    {"id":"2", "title":"Test 2", "comment":"This is the second test"} 
]; 

私は何をしようとしていることは、IDSのそれぞれを取得することです。

私はこの

for(x in json[0]){ 
    alert(x.id);   
} 

しかし、運をしようとしている、誰かが正しい方向に私を指すことができますか?していただきありがとうございます:)

+0

for(x = 0; x < y.length; x++) { // (this can only loop through arrays) // do something with y[x] } for(x in y) { // (this can loop through objects too) // do something with y[x] } 
[用...文字列配列を出力するインデックスを有するループ内]の可能な重複(http://stackoverflow.com/questions/ 7480020/for-in-string-with-string-array-outputs-indices) –

+0

['for ... in'のドキュメント](https://developer.mozilla.org/)を読むと参考になるでしょう。 ja/JavaScript /リファレンス/ステートメント/ for ...) –

答えて

5

xあなたの例ではのインデックスの配列ではなく、オブジェクトを提供しています。あなたは何ができる:

for(x in json) { 
    alert(json[x].id);   
} 

いますが、ループのための「定期的」とのオフは本当に優れている配列をループする

for (var i = 0, max = json.length; i < max; i++) { 
    alert(json[i].id); 
} 
+0

驚くばかりの男、これはまさに私が探していたものです。ありがとうございます – user979331

+0

@ user1193385 - 私の喜び。それがうれしかった。 –

4

任意の近代的なブラウザを使用すると、簡単にそれを行うことができます:

var ids = json.map(function(i) { return i.id; }); 
// and now you have an array of ids! 

悲しいことに、「現代」にはIE 8以前は含まれていません。

また、すべてのブラウザで動作することが保証されている "世俗的な"形式を使用することもできます。私はアダムRackisがそれに私を打つことを参照してください、私は彼の答えをupvote行くだろうし、おそらく同様に行う必要があります。

+0

+1 - nice - 私は本当にこれらのES5メソッドをもっと使い始める必要があります。そして、「悲しいことに、」現代の「IE 8は含まれていない」ftft –

+0

私はこのアイディアも考えている – user979331

1

これは一つの可能​​な解決策である:JavaScriptで

var json = [{"id":"1","title":"Test 1","comment":"This is the first test"},{"id":"2","title":"Test 2","comment":"This is the second test"}]; 

for (var i = 0, len = json.length; i < len; i++) { 
    alert(json[i].id); 
} 
1

for(x in y)ループ(例えば、x[y]はあなたの現在の要素を与えるように)あなたはその配列内のインデックスを与えます。 JavaScriptで配列をループに

2つの適切な方法は次のとおり

関連する問題