2016-05-20 25 views
2

の上に私は次のように私の配列を作成しました:

var test = []; 
test['pizza'] = 4; 
test['pudding'] = 6; 

を私は私の配列をループに$.eachを使用して、値とインデックスを印刷するために使用しています。しかし

$.each(test, function (index, value){ 
    console.log(value); 
}); 

を何とかそれだけ[]を印刷しない:私は次のようにこれをやっています。 配列をループして46の値を出力するにはどうすればよいですか?

+0

'console.log(test ['pizza']); – guradio

答えて

4

eachは、配列の反復可能なプロパティに対してのみ反復します。pizzaおよびpuddingは反復可能なプロパティではありません。

キーと値のペアが必要なので、変数をオブジェクトとして宣言します。

var test = {}; 
test['pizza'] = 4; 
test['pudding'] = 6; 
+0

Soo iterableプロパティはキー0,1,2,3などの配列ですright? – Baklap4

+0

@ Baklap4はい... – Tushar

0

あなたのニーズに応じて何が起こるかを選択したい場合があります。

0

ここで、テストは配列ではなくオブジェクトであるため、必要な配列はオブジェクトではありません。 javascriptオブジェクト

var test = {}; 
test['pizza'] = 4; 
test['pudding'] = 6; 

$.each(test, function (index, value){ 
    console.log(value); 
}); 
1

としてそれを宣言するあなただけforを使用して、Javascriptの配列を反復処理するのjQueryを必要としません。

var test = []; 
test['pizza'] = 4; 
test['pudding'] = 6; 

for (var k in test) { 
    if (test.hasOwnProperty(k)) { 
     console.log('Key: ' + k + ' Value: ' + test[k]); 
    } 
} 

// Key: pizza Value: 4 
// Key: pudding Value: 6 

あなたは(他の回答で提案されている)、このためのオブジェクトとしてテストを宣言する必要はありませんが、配列は問題ありません。

forを使用すると、アプリケーションのパフォーマンスが向上します。 See here

FirefoxとChromeの両方で、forループは、他のものよりもはるかに100倍以上高速です。

関連する問題