js循环一维数组按指定长度截取为二维数组

时间:2023-03-10 04:57:24
js循环一维数组按指定长度截取为二维数组
//随便创建一个数组
let data = "abcdefghijklmnopkrstuvw12322999".split("");
//总数组
let productData=[];
//分数组
let falseData = [];
//小下标
let index = 0;
//如果是数组并且长度大于零
if(Array.isArray(data)&&data.length>0){
//循环原一维数组
for (let i = 0; i < data.length; i++) {
//把每个元素存进新的数组
falseData[index] = data[i];
//更新小下标
index++;
//当分数组累计够五个的时候
if ((i + 1)%5==0){
//小下标归零
index = 0;
//将分数组加入总数组
productData[(i+1) / 5] = falseData;
//清空分数组
falseData = [];
} else if (i == data.length - 1){//当循环到最后(就是原数组长度除以5有余数时)将剩余的元素也收个尾放到总数组中
productData[Math.floor((i + 1) / 5)+1] = falseData;
}
}
}
//删除总数组的第一个元素
productData.shift();
console.log(productData);

以上是复杂的,基本上没有使用自带函数的

下面是简便的方式

let data = "abcdefghijklmnopkrstuvw12322999".split("");
let productData=[];
let num = Math.ceil(data.length / 5);
for(let i= 0 ;i<num;i++){
productData.push(data.slice(i*5,i*5+5))
} console.log(productData);

都是截取5个元素为一个数组的