js中如何使用for循环,按3位为基准进行叠加循环?

问题描述

比如我现在有如下数组 var a=[1,2,3,4,5,6,7,8,9];
我想按照 1、2、3/ 4、5、6/ 7、8、9 顺序进行排列循环输出

问题出现的环境背景及自己尝试过哪些方法

我尝试用 for (j = 0; j < data.files[i].item.length; j += 2)
但是结果和预期不一致,请问如何才能实现呢?

阅读 2.9k
3 个回答
for(let j=0; j < a.length; j+=3) {
    console.log(a.slice(j, j+3).join(','));
}

两种方法

1.只迭代分组

const GROUP_SIZE = 3
for(let i = 0; i <= arr.length / GROUP_SIZE; i++) {
    console.log('/')
    let j = i * GROUP_SIZE;
    while(j < arr.length && j < (i + 1) * GROUP_SIZE) console.log(arr[j++])
}

2.全部迭代,分组输出

const GROUP_SIZE = 3
for(let i = 0; i < arr.length;) {
    console.log('/')
    const start = i;
    while(i < start + GROUP_SIZE && i < arr.length) console.log(arr[i++]);
}

索引增加 数目 不对吧。

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
a.reduce((res, item, index) => {

  if (index % 3 === 0) {
    return res + '/' + item
  }
  return res + ',' + item
})
推荐问题