0

我有一组像这样的对象-[{first},{second},{third},{forth},{fifth},{sixth}}

如何循环遍历 Array,并获取(对于每个循环)该 Array 的下三个元素?

例如,对于第一个循环,我将获得三个引用{first},{second}和的变量{third},对于第二个循环,我将获得引用{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 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 回答
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];
}

我没有处理数组中没有正好是三个对象的倍数的情况,但这应该可以帮助您入门。

于 2012-12-06T00:15:05.057 回答