2010-12-26 5 views
1

私はmootoolsを学習しています。私は次の形式の配列を持っています。 forループでそれをトラバースしたいのですが、それを行う方法はわかりません。Mootools:mootoolsの次の配列をトラバースしたい

{'apple' : { 'prize' : 10 , 'color' : 'Red' } , 
'banana' : { 'color' : 'red', 'prize' : 20, 'quantity' : 12 } } 

なぜ私はその構造を変えることができないのですか?

答えて

1

これらはオブジェクトであり、配列ではありません。

例:http://jsfiddle.net/AkVvY/

var obj = {'apple' : { 'prize' : 10 , 'color' : 'Red' } , 
'banana' : { 'color' : 'red', 'prize' : 20, 'quantity' : 12 } }; 

for(var name in obj) { 
    alert(name + ': ' + obj[name].color); 
} 

あなたは、このためのライブラリを必要としません。

あなたがこれを行う、その後、Object.prototypeへの追加があるかもしれないことを懸念している場合:

例:http://jsfiddle.net/AkVvY/1/

for(var name in obj) { 
    if(obj.hasOwnProperty(name)) { 
     alert(name + ': ' + obj[name].color); 
    } 
} 
2

あなたはドンので、MooToolsの」は、同様にこの機能を有しています

Object.each({ 'prize' : 10 , 'color' : 'Red' }, function(value, key){ 
    // what you like to do. 
}); 

は、マニュアルを参照してください:tは自分でチェックhasOwnPropertyを使用する必要がありますhttp://mootools.net/docs/core/Types/Object#Object:Object-each

実際には配列とオブジェクトの違いを知ることが重要です。上記の例では、オブジェクトリテラルを使用しています。

アレイの場合、Array:eachを使用できます。

[1, 2, 3, 4].each(function(value, key){ 
    // what you like to do. 
}); 

ドキュメント:http://mootools.net/docs/core/Types/Array#Array:each

しかし、他の回答で述べたように、あなたがオブジェクトのためのfor (var key in obj){}ループ、およびプレーンJavaScriptで配列のためfor (var i = 0, l = arr.length; i < l; i++){}ループ

+0

でこれを行うことができます私はこのコードを使用してみました私の構造はできますが、どんな結果も得られません:Object.each({'prize':10、 'color': 'Red'}、function(value、key){ //あなたがしたいのは }); – Vin

+0

+1 @arian。 @ジョニー:おそらく古いバージョンのmootoolsを使っているでしょう。 try 'obj.each(function(el){console.log(el);});' –

関連する問題