我的例子:
let arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];
let slice = (source, index) => source.slice(index, index + 4);
let length = arr.length;
let index = 0;
let result = [];
while (index < length) {
let temp = slice(arr, index);
result.push(temp);
index += 4;
}
console.log(result);
记录:
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18]]
我想将数组分割为每 4 个项目的多个部分 [1,2,3,4] [5,6,7,8]...
代码运行良好。
我有 2 个问题:
1/.还有另一种方法可以通过使用内联代码来做到这一点吗?例如:result = arr.slice(...)
2/。在我定义之后:
let push = result.push;
为什么我仍然不能使用:
push(temp)
错误消息:
Uncaught TypeError: Array.prototype.push called on null or undefined
更新:我已根据答案更新了解决方案。希望对您有所帮助。
let arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];
let result = [];
arr.forEach((x,y,z) => !(y % 4) ? result.push(z.slice(y, y + 4)) : '');
console.log(result);
记录:
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18]]
最佳答案
简单的方法
var chunckArray = function(array, chunkCount){
var chunks = [];
while(array.length){
chunks.push(array.splice(0, chunkCount);
}
return chunks;
}
非消耗性方式:
var chunckArray = function(array, chunkCount){
var chunks = [], i, j;
for (i = 0, j = array.length; i<j; i+= chunkCount) {
chunks.push(array.slice(i, i + chunkCount);
}
return chunks;
}
关于javascript - 将数组切片为多个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42371963/