首页 > 技术文章 > js循环一维数组按指定长度截取为二维数组

zonglonglong 2018-05-02 15:32 原文

//随便创建一个数组
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个元素为一个数组的

推荐阅读