Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据大小将阵列拆分为多个组&;返回二维数组_Javascript - Fatal编程技术网

Javascript 根据大小将阵列拆分为多个组&;返回二维数组

Javascript 根据大小将阵列拆分为多个组&;返回二维数组,javascript,Javascript,我见过使用push和slice的解决方案,但我希望使用嵌套循环来实现这一点。当数组中的元素数可以被大小整除时,此代码可以工作,但在其他情况下不工作 let arr2d = []; function breakIt(arr, size){ if(arr.length % size === 0){ for (var i = 0; i < size; i++) { arr2d[i] = new Array(size); } console.log(a

我见过使用push和slice的解决方案,但我希望使用嵌套循环来实现这一点。当数组中的元素数可以被大小整除时,此代码可以工作,但在其他情况下不工作

let arr2d = [];

function breakIt(arr, size){
  if(arr.length % size === 0){
    for (var i = 0; i < size; i++) { 
     arr2d[i] = new Array(size);
    } 

    console.log(arr2d);
    let increm = 0;

    for(let i = 0; i < (arr.length/size); i++){
      for(let j = 0; j < size; j++){
        arr2d[i][j] = arr[increm];
        increm++;
        //console.log(arr2d[i][j]);
        }
    }
   } else {
     console.log('Odd number of elements in arr');
   }

  console.log(arr2d);
}

breakIt(["a", "b", "c", "d"], 2);
breakIt(["a", "b", "c", "d", "e", "f"], 3);
breakIt([1, 2, 3, 4, 5, 6], 2);

//breakIt([0, 1, 2, 3, 4, 5], 4)should return [[0, 1, 2, 3], [4, 5]]
让arr2d=[];
功能中断(arr、大小){
如果(arr.length%size==0){
对于(var i=0;i
您也可以通过一个循环来实现:

逻辑:
  • 循环数据
  • 创建2个数组,
    • 结果
      以获得最终输出
    • temp
      保存中间值
  • 如果在
    temp
    中推送了大量元素,则可以在结果中克隆并推送克隆的数据。对于任何尾随值,您还必须在循环结束后执行此操作
函数中断(数据,len){
常量结果=[];
设temp=[];
for(设i=0;i0){
结果.推送(临时切片());
温度=[];
}
温度推送(数据[i])
}
结果。推送(温度)
控制台日志(结果);
返回结果;
}
突破([“a”、“b”、“c”、“d”]、2);
突破点([“a”、“b”、“c”、“d”、“e”、“f”]、3);
breakIt([1,2,3,4,5,6],2);

breakIt([1,2,3,4,5,6],4)请添加想要的结果和不起作用的内容。断开([“a”、“b”、“c”、“d”],2);突破点([“a”、“b”、“c”、“d”、“e”、“f”]、3);breakIt([1,2,3,4,5,6],2);breakIt([0,1,2,3,4,5],4)应返回[[0,1,2,3],[4,5]]当使用前三个函数调用函数但不使用最后一个函数时,代码会给出所需的结果。请编辑问题。