js怎样将一位数组转换成二维数组

新手上路,请多包涵

已知一个按顺序排列的随机数组,将他转换成二维的

可以自己随机生成一个二维数组,但是不知道怎么将随机数放进去

相关代码

/**/

window.onload=function(){

  console.log(this.unique(9))

};
function unique(num) {

let arr1 = new Array(4);
let newArr = this.num();
for (let i=0;i<arr1.length;i++){
    arr1[i] = new Array(3);
    for (let j=0;j<arr1[i].length;j++){
      arr1[i][j] = newArr
    }
}
for(let i =0;i<arr.length;i++){
    if (arr[i].indexOf(num)===-1){
        console.log(2);
        return false
    }
}

}

function num() {

let arr = [];
for (let i=0;i<10;i++){
    let c =(Math.random()*45).toString().split('.')[0];
    if(arr.indexOf(c)==-1){
        arr.push(c)
    }
}
return arr.sort(b)

}
function b(f,g) {

return f-g;

}

其中newArr是整个一位数组,遍历全部遍历到二维数组里了,但是我想实现这种二维数组

let arr = [

    [2,   4,  8,  9],
    [10, 13, 15, 21],
    [23, 31, 33, 51]
];
阅读 4.1k
2 个回答
arrChange(){
  var newArray=this.num(),
      arr2=[];
  for(var i=0;i<3;i++){
    var arr=[];
    for(var j=0;j<4;j++){
      arr.push(newArray.pop())
    }
    arr2.push(arr);
  }
  return arr2;
}
// n 个数
function cf(arr, n) {

    if(!Array.isArray(arr) || arr.length == 0) {
        return []
    }

    var tem = [],
        size = arr.length,
        count = Math.floor((size - 1) / n) + 1

    while(count--) {
        tem.unshift(arr.slice(count*n, (count+1)*n))
    }

    return tem;
}
var arr1 = [1,2,3,4,5,6,7,8,9,10,11,12, 13,14]
cf(arr1, 4)
/*
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]
[13, 14]
*/
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题