我需要编写一个函数,将给定的数组(第一个参数)按指定长度(第二个参数)分组,并将它们作为二维数组返回。因此,chunkArrayInGroups(["a", "b", "c", "d"], 2) 应该返回 [["a", "b"], ["c", "d"]]。
function chunkArrayInGroups(arr, size) {
// Break it up.
var result=[];
for (var i=0;i<=Math.ceil(arr.length/size);i++){
var j=0;
if(i!== 0){
j+=size;
size+=size;
}
result[i] = arr.slice(j , size);
}
//return arr.length/size
//results in 1.5
return result;
// results [["a", "b"], ["c", "d"]]
}
chunkArrayInGroups(["a", "b", "c", "d"], 2);
我得到了期望的结果,但对我的解决方案不是很满意,更重要的是,“如果” arr.length = 4; 并且 size =2; 那么为什么 arr.length/size = 1 呢? 难道不应该是 4/2=2 吗?
arr
没有受到影响,因为在result[i] = arr.slice(j, size);
中使用了.slice()
。需要改变原始数组吗?更重要的是,为什么arr.length = 4
? - guest271314