编写一个函数,将数组(第一个参数)拆分为大小(第二个参数)的长度组,并将它们作为多维数组返回

Write a function that splits an array (first argument) into groups the length of size (second argument) and returns them as a multidimensional array

本文关键字:参数 数组 返回 第二个 第一个 一个 拆分 函数      更新时间:2023-09-26

我正在解决一个javascript问题,该问题要求我:编写一个函数,将数组(第一个参数)分成大小(第二个参数)的长度组,并将它们作为多维数组返回。例如,输入块([0,1,2,3,4,5],2)应该返回'块数组':[[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, "");

您可以使用 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));

在你的代码中,你只初始化一个内部数组,相反,你需要初始化数组内的索引

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));