2012-09-25 5 views
8

で2つのアレイの各ループのjQuery私はジップ操作に出くわしたと私は、コードに反復処理は、私はしばらくの間、サーフィンjQueryのcode.Afterの一方各ループに2つの配列の値にアクセスする必要がある私は、同じサイズの2つのJavaScriptアレイ</p> <pre><code>var demo=new Array(); var demo3=new Array(); </code></pre> <p>したら

$.zip(demo,demo3).each(function(){         
    alert("demo "+this[0]); 
    alert("demo3 "+this[1]);  
}); 

しかしこのコードはwork.Pleaseていませんヘルプを使用してみました。

答えて

17

:古き良きforを使用してください。

$.each(demo, function(i, item) { 
    console.log(demo[i], demo3[i]); 
}); 

インデックスをペアにする必要がない場合は、.concatを使用してインデックスを逆順に実行してください。

$.each(demo.concat(demo3), function(i, item) { 
    console.log(item); 
}); 
8

もちろん、同じサイズにしますか?彼らは同じサイズで、ちょうどループ1だ、とiで他を参照するので

for(var i = 0; i < demo.length; i++){ 
    console.log(demo[i]); 
    console.log(demo3[i]); 
} 
3

あなたは関節の反復処理する場合は、あなたがしようとしている場合

$.each(demo, function (idx, el) { 
    alert(el); 
    alert(demo3[idx]); 
}); 
0

..

$.each(demo.concat(demo3), function (idx, el) { 
    alert(el); 
}); 

は単純に配列を反復処理し、次のアクセスするためにインデックスを使用.. .concatを使用してみてくださいアンダースコア(http://underscorejs.org/#zip)のzip機能を使用するには、次の操作を実行できます。

var combined = _.zip(demo, demo3); 
$.each(combined, function(index, value) { 
    // value[0] is equal to demo[index] 
    // value[1] is equal to demo3[index] 

}); 
​ 

デモ:http://jsfiddle.net/lucuma/jWbFf/

_zipドキュメント:対応する位置の値を持つアレイの各々の値を一緒にマージします。一致する配列インデックスによって調整された別々のデータソースがある場合に役立ちます。ネストされた配列の行列を扱っている場合、zip.applyは同様の方法で行列を転置することができます。

http://underscorejs.org/#zip

言ったことすべては、ループのための平野は、この場合には非常に簡単で効率的です。

関連する問題

 関連する問題