我正在处理一个javascript问题,要求我:编写一个将数组(第一个参数)拆分为大小长度(第二个参数)的函数,并将它们作为多维数组返回。例如,输入块([0,1,2,3,4,5],2)应该返回'chunked arrays':[[0,1],[2,3],[4,5]] 。我得到的错误是无法设置未定义的属性'0'。请帮忙。
function chunk(arr, size) {
var k;
var a=[[]];
var num=0;
for(var j=0;j<(arr.length/size);j++){
for(var i=num,k=0; k<size ;i++,k++)
{
a[j][k]=arr[i];
}
num+=size;
}
return a;
}
chunk(["a", "b", "c", "d"], 2, "");
答案 0 :(得分:2)
您可以使用 splice()
function chunk(arr, size) {
var a = [];
while (arr.length > 0) {
a.push(arr.splice(0, size));
}
return a;
}
console.log(chunk(["a", "b", "c", "d"], 2));
&#13;
在您的代码中,您只是初始化一个内部数组,而是需要使用索引
初始化for循环中的数组
function chunk(arr, size) {
var k;
var a = [];
var num = 0;
for (var j = 0; j < (arr.length / size); j++) {
a[j] = [];
for (var k = 0; k < size; num++, k++) {
a[j][k] = arr[num];
}
}
return a;
}
console.log(chunk(["a", "b", "c", "d"], 2));
&#13;