当前位置:网站首页>定时器循环展示数组
定时器循环展示数组
2022-08-10 17:39:00 【凡小多】
先看看效果图
流程
使用数组的slice()
方法通过条件判断截取原数组相应内容组成新数组
循环数组
let currentPage = 0
// arr:原数组 newLen:新数组需要的长度 currentPage:现在的页码
// 方法一:
function loopData(arr, newLen) {
let len = arr.length;
let result = len - currentPage;
let newArr = [];
if (result > 0 && result < newLen) {
newArr = [
...arr.slice(currentPage - result, len),
...arr.slice(0, newLen - result),
];
currentPage = newLen - result;
} else if (result >= newLen) {
newArr = arr.slice(currentPage, currentPage + newLen);
currentPage += newLen;
} else {
currentPage = 0;
newArr = arr.slice(currentPage, currentPage + newLen);
}
return newArr;
}
// 方法二:
function loopData(arr, newLen) {
let len = arr.length;
let newArr = [];
if (currentPage === len) {
// 页码等于数组长度时,从0重新开始
currentPage = 0;
}
if (currentPage + newLen <= len) {
newArr = [...arr.slice(currentPage, currentPage + newLen)];
currentPage++;
} else if (currentPage + newLen > len && currentPage < len) {
newArr = [
...arr.slice(currentPage, len),
...arr.slice(0, newLen - len + currentPage),
];
currentPage++;
}
return newArr;
}
简单案例
<template>
<div class="container">
<el-button @click="changeStatus">{
{ flag ? "暂停" : "开始" }}</el-button>
{
{ list }}
</div>
</template>
<script> let currentPage = 0; export default {
data() {
return {
arr: [1, 2, 3, 4, 5, 6, 7], list: [], timer: null, flag: true, }; }, mounted() {
this.start() }, destroyed() {
this.timer && clearInterval(this.timer); }, methods: {
changeStatus() {
if (this.flag) {
this.timer && clearInterval(this.timer); } else {
this.start(); } this.flag = !this.flag; }, start() {
this.timer = setInterval(() => {
this.list = this.loopData(this.arr, 4); }, 1000); }, loopData(arr, newLen) {
let len = arr.length; let newArr = []; if (currentPage === len) {
currentPage = 0; } if (currentPage + newLen <= len) {
newArr = [...arr.slice(currentPage, currentPage + newLen)]; currentPage++; } else if (currentPage + newLen > len && currentPage < len) {
newArr = [ ...arr.slice(currentPage, len), ...arr.slice(0, newLen - len + currentPage), ]; currentPage++; } return newArr; }, }, }; </script>
<style lang="scss" scoped> .container {
padding: 20px; } </style>
边栏推荐
猜你喜欢
Toronto Research Chemicals BTK甜味剂配方丨D-Abequose
期货开户手续费加1分已经是常态
Xilinx FPGA收发器参考时钟设计应用
Toronto Research Chemicals 对乙酰氧基苯乙酮说明书
忍不住 - 发个新帖子【为什么把红圈的功能入口隐藏?需要移动到鼠标到位置驻停才显示?】- 请投票
本周四晚19:00知识赋能第六期第5课丨OpenHarmony WiFi子系统
「业务架构」业务能力的热图是什么,有啥用?
SQL优化的魅力!从 30248s 到 0.001s
瑞虎8 PRO产品性能分析,一文读懂究竟何为“全域动力科技旗舰”
Toronto Research Chemicals萜烯分析丨(+)-柠檬烯
随机推荐
浅析端口扫描原理
Mysql index, transaction and storage engine
【图像分割】基于元胞自动机实现图像分割附matlab代码
perl编码转换
Making Pre-trained Language Models Better Few-Shot Learners
Flexsim 发生器和暂存区设定临时实体流颜色和端口
oracle11g体系结构
FFmpeg花屏解决(修改源码,丢弃不完整帧)
640. 求解方程
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(下)
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
【独立站运营】做社交媒体营销的两大关键点
Toronto Research Chemicals BTK甜味剂配方丨D-Abequose
R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、如果已知阶数则直接使用arima函数构建模型(order参数指定阶数)
R语言检验时间序列的平稳性:使用fUnitRoots包中的adfTest函数检验时间序列数据是否具有平稳性(设置参数type为nc时、既不去除趋势也不进行中心化处理)
Talk about cloud native data platform
const的自己理解
架构-三层架构:三层架构
skywalking vulnerability learning
Scala中使用 Jackson API 进行JSON序列化和反序列化