0

私はこのようなオブジェクトの配列を持っています -[{first},{second},{third},{forth},{fifth},{sixth}}

Array をループして、(ループごとに) その Array の次の 3 つの要素を取得するにはどうすればよいですか?

たとえば、最初のループでは{first}{second}およびを参照する 3 つの変数を取得{third}し、2 番目のループでは{forth}{fifth}および{sixth}...を参照する変数を取得します。

4

6 に答える 6

3
for (i = 0; i < arr.length; i += 3) {
    var a = arr[i];
    var b = arr[i + 1];
    var c = arr[i + 2];
    ...
}
于 2012-12-06T00:12:51.203 に答える
2

これはうまくいくかもしれません:

var array = ['one', 'two', 'three', 'four', 'five', 'six', 'seven'];
for(i = 0; i < array.length; i+=3){
    var first = array[i];
    var second = (array[i+1]) ? array[i+1] : null;
    var third = (array[i+2]) ? array[i+2] : null;
}

インデックスが配列に存在しない場合、変数は になりますnullフィドル

于 2012-12-06T00:12:58.510 に答える
1

受け入れられた回答の別のバージョンは次のとおりです。

var i = 0, len = arr.length;
while (i < len) {
    var a = arr[i++];
    var b = arr[i++];
    var c = arr[i++];
    ...
}

配列がまばらな場合、または長さが 3 の偶数倍でない場合は、値を読み取る前に要素が存在することをテストし、カウンターをインクリメントするときにそれを考慮する必要があります。

于 2012-12-06T00:50:45.607 に答える
0

これは本当にかなり基本的です

var array; // your array (let's pretend it's already populated)

for (i = 0; i < array.length - 3; i += 3) {
    element1 = array[i];
    element2 = array[i+1];
    element3 = array[i+2];
}

配列に3つのオブジェクトの正確な倍数がない場合の処理​​は行いませんでしたが、これで開始できます。

于 2012-12-06T00:15:05.057 に答える
0

これを試して:

var i, j;
for (i = 0; i < 4; i += 1) {
   // Loop
}
for (j = i; j < arr.length; j += 1) {
   // Second loop
}
于 2012-12-06T00:11:34.313 に答える
0

i の後の要素に 1 を追加し、その後の要素に 2 を追加するだけです。

var ary1,ary2,ary3;

for(var i=0;i<size-3;i+=3){
  ary1 = myary[i];
  ary2 = myary[i+1];
  ary3 = myary[i+2];
}
于 2012-12-06T00:11:59.390 に答える