当前位置:网站首页>定时器循环展示数组
定时器循环展示数组
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>
边栏推荐
- 期货开户手续费加1分已经是常态
- 20220810
- JNDI与RMI、LDAP
- 产品-Axure9英文版,A页面内a1状态跳转B页面的b2状态,(条件跳转状态)
- 产品说明丨Android端使用MobPush快速集成方法
- Scala中使用 Jackson API 进行JSON序列化和反序列化
- Return the next higher prime number
- R语言使用ggpubr包的ggbarplot函数可视化柱状图、设置add参数为mean_se和jitter可视化不同水平均值的柱状图并为柱状图添加误差线(se标准误差)和抖动数据点分布
- Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
- awk if else if else
猜你喜欢
随机推荐
期货开户手续费加1分已经是常态
aliexpress API 接入说明
Toronto Research Chemicals农药检测丨Naled-d6
CDH6.3.2之Kerberos安全认证_大数据培训
文件包含漏洞复习总结
「NewSQL技术」Greenplum 6中的OLTP负载性能提升60倍以上
Toronto Research Chemicals农药检测丨甲硫威
R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、如果已知阶数则直接使用arima函数构建模型(order参数指定阶数)
Toronto Research Chemicals霉菌毒素分析丨T2 四醇
微信小程序富文本标签rich-text
shopee API 接入说明
还在用 Xshell?你 out 了,推荐一个更现代的终端连接工具,好用到爆!
ARM开发(三)ARM寻址方式,异常中断,异常向量表
浅析端口扫描原理
dedecms支持PowerPoint粘贴
LeetCode 198:打家劫舍
Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
R语言ggplot2可视化:使用ggpubr包的text_grob函数和as_ggplot函数可视化文本段落(将指定文本段落可视化出来、指定文本段可视化为图像)、face参数指定文本的字体样式
「业务架构」业务能力的热图是什么,有啥用?
JNDI与RMI、LDAP






