10

同じサイズのJavascript配列が2つあります

var demo=new Array();
var demo3=new Array();

JQueryコードの各ループで2つの配列の値にアクセスする必要があります。しばらくサーフィンした後、zip操作に遭遇し、コードを使用してみました。

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

ただし、このコードは機能しません。助けてください。

4

4 に答える 4

18

それらは同じサイズなので、一方をループし、もう一方を。で参照しiます。

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

インデックスをペアにする必要がない場合は、を使用してインデックスを連続して実行します.concat

$.each(demo.concat(demo3), function(i, item) {
    console.log(item);
});
于 2012-09-25T14:42:02.720 に答える
10

確かに同じサイズを維持しますか?古き良きものを使う' for

for(var i = 0; i < demo.length; i++){
    console.log(demo[i]);
    console.log(demo3[i]);
}
于 2012-09-25T14:41:36.773 に答える
3

.concatジョイントを繰り返したい場合は、を使用してみてください。

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

それ以外の場合は、配列を繰り返し、インデックスを使用してnextにアクセスします。

$.each(demo, function (idx, el) {
     alert(el);
     alert(demo3[idx]);
});
于 2012-09-25T14:43:05.003 に答える
0

アンダースコア(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

とはいえ、この場合、単純なforループは非常に簡単で効率的です。

于 2012-09-25T14:53:54.993 に答える