JS实现数据循环顺位获取元素,数组元素不足时,能够从头开始顺位取元素以补足

因为需要实现一个功能:指定数组中每次顺位取出3个元素,用于循环显示于前端。

平时可以这样实现,但是 数组元素不足时 会出现空

//指定数组顺位获取元素
function getArr(){

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; //数组
let totalNum = 7; // 总共循环7次
let everyNum= 3; // 每次取3个元素

for (let i = 0; i < totalNum ; i++) {  //循环7次

    // 计算每次循环的起始索引和结束索引
    let startIndex = i * everyNum;
    let endIndex = startIndex + everyNum;
    // 使用slice方法获取当前循环的3个元素(或更少的元素,如果数组不够长)
    let currentElements = arr.slice(startIndex, endIndex);
    // 输出当前循环获取的元素
    console.log(currentElements);

  }

}


//结果
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]         // 注意这里只有1个元素,因为数组已经不够3个了
[]       // 空数组,因为已经没有更多元素可以取了
[]       // 
[]       // 

 我们需要的时它能一直有数据  ,并且数组元素不足时,能够从头开始顺位取元素以补足

以下实现:

//指定数组顺位获取元素
function getArr(){

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let totalNum = 7;
let everyNum = 3;

for (let i = 0; i < totalNum; i++) {

    let currentElements = [];

    for (let j = 0; j < everyNum; j++) {
        // 使用取模操作确保索引在数组范围内循环
        let index = (i * everyNum + j) % arr.length;
        currentElements.push(arr[index]);
    }

    console.log(currentElements); //
 }

}

//结果:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10, 1, 2]
[3, 4, 5]
[6, 7, 8]
[9, 10, 1]

 

无论循环多少次它都可以根据长度顺位补齐元素,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值