当前位置:网站首页>定时器循环展示数组
定时器循环展示数组
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>
边栏推荐
- 不止跑路,拯救误操作rm -rf /*的小伙儿
- 【图像分割】基于元胞自动机实现图像分割附matlab代码
- 基于AWS构建云上数仓第二步:AWS常见服务简介
- 海思HI3516DV300开发资料
- 20220810
- Talking about Taishan crowdfunding system development technical description and dapp chain crowdfunding system development analysis
- Go-Excelize API源码阅读(六)—— DeleteSheet(sheet string)
- Wuling Hongguang MINI EV, the only drawback is safety
- 产品说明丨Android端使用MobPush快速集成方法
- R语言使用ggpubr包的ggsummarystats函数可视化箱图(通过ggfunc参数设置)、在可视化图像的下方添加描述性统计结果表格、设置add参数为jitter添加抖动数据点
猜你喜欢
讯飞翻译机抢镜背后,跨语种沟通迈入全新时代
Mysql index, transaction and storage engine
Trie字典树
Making Pre-trained Language Models Better Few-Shot Learners
Colocate Join :ClickHouse的一种高性能分布式join查询模型
机器人控制器编程实践指导书旧版-实践六 LCD液晶显示(点阵)
股票量化交易策略:多因子筛选练习
HDLBits: 在线学习 SystemVerilog(零)-在线“巡礼” HDLBits
Wuling Hongguang MINI EV, the only drawback is safety
基于AWS构建云上数仓第二步:AWS常见服务简介
随机推荐
mysql主主复制+keepalived高可用
股票量化交易策略:多因子筛选练习
LeetCode 198:打家劫舍
DASCTF2022.07 empowerment competition WEB topic recurrence
机器人控制器编程整理汇总-辞旧迎新-
【2015】【论文笔记】等离子光混合器THz辐射的光谱——
R语言ggplot2可视化:使用ggpubr包的ggscatter函数可视化分组散点图、stat_mean函数在分组数据点外侧绘制凸包并突出显示分组均值点、自定会均值点的大小以及透明度
痛苦的四大原因
shopee API 接入说明
讯飞翻译机抢镜背后,跨语种沟通迈入全新时代
redis分布式锁
PS2手柄通讯协议解析—附资料和源码「建议收藏」
电路板ROHS测试报告怎么办理?电路板ROHS检测流程
node环境变量配置,npm环境变量配置
DASCTF2022.07赋能赛 WEB题目复现
D-Wave成功上市!量子计算商业化正在加速
Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
多线程与高并发(11)——经典面试题之实现一个容器,提供两个方法,add,size。
fastjson chain analysis (1.2.22-47)
Toronto Research Chemicals 双(乙酰丙酮)铂(II)