Javascript 将阵列拆分为大小均匀的阵列

Javascript 将阵列拆分为大小均匀的阵列,javascript,arrays,Javascript,Arrays,我需要将一个数组拆分为3个偶数数组。到目前为止,我只找到了分块到指定数组长度的示例。例如: var array = [1,2,3,4,5]; const results = []; while (array.length) { results.push(array.splice(0, 3)); } return results; //returns [1,2,3],[4,5] 所以如果我有数组=[1,2,3,4,5](或任何其他长度) 我需要把它分成[1,2],[3,4],[5] 有什

我需要将一个数组拆分为3个偶数数组。到目前为止,我只找到了分块到指定数组长度的示例。例如:

var array = [1,2,3,4,5];
const results = [];

while (array.length) {
  results.push(array.splice(0, 3));
}

return results; //returns [1,2,3],[4,5]
所以如果我有
数组=[1,2,3,4,5]
(或任何其他长度)

我需要把它分成
[1,2],[3,4],[5]


有什么想法吗?

用长度除以3,算出块的大小:

var数组=[1,2,3,4,5];
常量结果=[];
const chunkSize=Math.ceil(array.length/3);
while(array.length){
结果:push(array.splice(0,chunkSize));
}

控制台日志(结果)您可以对数组进行切片,并使用一个大小来添加所需的长度

这种方法不会改变给定的数据

var数组=[1,2,3,4,5],
结果=[],
size=Math.ceil(array.length/3),
i=0;
而(i

.as console wrapper{max height:100%!important;top:0;}
在这里尝试一下,您需要提供块的数量

const arr=[1,2,3,4,5];
常量块=(输入,编号)=>{
let size=Math.ceil(输入长度/个);
返回输入。减少((arr,项目,idx)=>{
返回idx%size==0
?[…arr,[项目]]
:[…arr.slice(0,-1),[…arr.slice(-1)[0],item]];
}, []);
};

log(chunk(arr,3))
splice()
还将修改原始数组的内容。@SujeetAgrahari:OP也没有以不变的方式进行修改,但是,如果需要,可以提前进行浅拷贝以避免变异。