js 数组分隔为二维数组

本文介绍了一种将一维数组按指定长度分割成多个子数组,并封装为二维数组的方法。通过计算内外层数组长度,利用循环实现数组的重新组织。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

            /**
             * 分割数组创建二维数组封装
             * @param data 数组
             * @param senArrLen 需要分割成子数组的长度
             */
            splitArr(data, senArrLen) {
                //处理成len个一组的数据
                let data_len = data.length;
                let arrOuter_len = data_len % senArrLen === 0 ? data_len / senArrLen : parseInt((data_len /
                    senArrLen) + '') + 1;
                let arrSec_len = data_len > senArrLen ? senArrLen : data_len; //内层数组的长度
                let arrOuter = new Array(arrOuter_len); //最外层数组
                let arrOuter_index = 0; //外层数组的子元素下标
                // console.log(data_len % len);
                for (let i = 0; i < data_len; i++) {
                    if (i % senArrLen === 0) {
                        arrOuter_index++;
                        let len = arrSec_len * arrOuter_index;
                        //将内层数组的长度最小取决于数据长度对len取余,平时最内层由下面赋值决定
                        arrOuter[arrOuter_index - 1] = new Array(data_len % senArrLen);
                        if (arrOuter_index === arrOuter_len) //最后一组
                            data_len % senArrLen === 0 ?
                            len = data_len % senArrLen + senArrLen * arrOuter_index :
                            len = data_len % senArrLen + senArrLen * (arrOuter_index - 1);
                        let arrSec_index = 0; //第二层数组的索引
                        for (let k = i; k < len; k++) { //第一层数组的开始取决于第二层数组长度*当前第一层的索引
                            arrOuter[arrOuter_index - 1][arrSec_index] = data[k];
                            arrSec_index++;
                        }
                    }
                }
                console.log(arrOuter);
            },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值