我有一个长数字数组列表,我想每次循环处理其中4个元素。
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
我希望能循环遍历它们,以便我可以像这样处理1-4
,5-8
,9-12
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
我希望能循环遍历它们,以便我可以像这样处理1-4
,5-8
,9-12
使用for循环,其中i每次增加4个。
注:当Jaromanda X发表相同观点时,我正在撰写答案。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
for (var i = 0; i < arr.length; i += 4) {
console.log("Working with: " + arr.slice(i, i + 4));
}
Using ES6和数组函数:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
[...Array(Math.ceil(arr.length / 4)).keys()].forEach(i => {
const [a, b, c, d] = arr.slice(i * 4, (i+1) * 4)
// a, b, c and d are the four elements of this iteration
console.log(`iteration n°${i}`, a, b, c, d)
})
Math.ceil
来防止出现错误。forEach
而不是map
更好 - Harijoelodash chunk
方法可以实现这个功能。
_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]