当前位置: 首页 > article >正文

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]

 

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


http://www.kler.cn/a/419421.html

相关文章:

  • 代码随想录算法训练营第六十天|Day60 图论
  • Angular v19 (三):增量水合特性详解 - 什么是水合过程?有哪些应用场景?与 Qwik 相比谁更胜一筹?- 哪个技术好我就学哪个,这就是吸心大法吧
  • 【Oracle11g SQL详解】ORDER BY 子句的排序规则与应用
  • 量化的8位LLM训练和推理使用bitsandbytes在AMD GPUs上
  • 什么是人工智能大模型?
  • 【IMF靶场渗透】
  • docker中redis查看key、删除key
  • git 清除旧历史提交记录并关联远程仓库
  • Qt 面试题学习11_2024-11-29
  • 力扣--LCR 143. 子结构判断
  • 挑战用React封装100个组件【006】
  • 【Springboot】@Autowired和@Resource的区别
  • TouchGFX设计模式代码实例说明
  • 基于centos7.9容器编排Jumpserver堡垒机
  • Android获取内置卡、内置U盘和挂载U盘路径和内存大小
  • Lerna管理和发布同一源码仓库的多个js/ts包
  • React面试进阶(五)
  • docker rocketmq
  • vue2和vue3两种倒计时CountDown实现
  • 设计模式之单例
  • Leetcode - 周赛425
  • EditInPlace就地编辑:Dom vs Form
  • 缓存与缓冲
  • 基于PHP的音乐网站的设计与实现
  • 每日速记10道java面试题03
  • 写一份客服网络安全意识培训PPT