应用场景这样的:
var imgUrls = [ '1.jpg', '2.jpg', '3.jpg', '4.jpg' ]; 现在想做一个Carousel的插件,要求点击某个按钮的时候可以一直循环看图片: 1.jpg, 2,jpg, 3.jpg, 4.jpg,1.jpg,2.jpg.... 如此循环下去,反之亦然。。
怎么去做数据层面的处理,怎么判断是否到头了?容易想到的办法是:
var currentIndex = 0; // show next img if (currentIndex === imgUrls.length - 1) { currentIndex = 0; } else { currentIndex++; } // show previous img if (currentIndex === 0) { currentIndex = imgUrls.length - 1; } else { currentIndex--; }
这种写法最直接,逻辑也很清楚,一目了然。不过今天自己在写这段的时候突然脑袋抽了一下,换了一种写法:
var currentIndex = 0; // show next img currentIndex = ++currentIndex % imgUrls.length; // show previous img currentIndex = (--currentIndex + imgUrls.length) % imgUrls.length;
相比第一种写法,代码简洁了一些,但逻辑却不那么明显清晰了。
这让我想到了那个什么什么不可兼得。。。
相关推荐
1、Smarty介绍及应用的优缺点 Smarty是一个使用...2、Smarty的配置3、Smarty的应用:变量,循环…数组是最常用的方式,可以帮助我们循环列表,和快速访问打理数据,如果要循环数组我们可以使用Smarty内置的方法section
软件介绍 1、Smarty介绍及应用的优缺点 Smarty是一个使用PHP写出来的PHP模板引擎,目的是要...数组是最常用的方式,可以帮助我们循环列表,和快速访问打理数据,如果要循环数组我们可以使用Smarty内置的方法section
foreach循环遍历数组和集合元素时,无须获得数组和集合长度,无须根据索引来访问数组元素和集合元素, foreach循环自动遍历数组和集合的每个元素。 •当使用foreach循环来迭代输出数组元素或集合时,通常不要对...
使用apache bsf开源项目的一个例子,我也是刚接触到。包含了一些基本的操作。 1.如何调用java方法 2.对调用java方法返回数据进行操作,如循环数组,逻辑判断 本项目用eclipse或myeclipse直接导入即可。
数组课上习题,练习注解笔记
大家都知道将多维数组(尤其是二维数组)转化为一维数组是业务开发中的常用逻辑,除了使用朴素的循环转换以外,我们还可以利用Javascript的语言特性和数据结构的思想实现更为简洁优雅的转换。下面跟着小编一起来学习...
模拟实现基于文本界面的《员工管理系统》。 该软件能够实现对员工对象的插入、修改和删除(用数组实现),...该初学者阶段则是需要掌握:用循环保证程序的不断运行、方法的调用、字符串处理的常见方法、键盘录入和输出
1、C++数据类型、控制语句、循环、数组等基础 2、C++逻辑算法练习题 3、C++函数、指针 4、C++内存管理等高级知识 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的C++编程思想和...
采用一个全局数组CArray,CPoint> numpoint来记录结点前序号。 if(Subtype==Input) { //当创建Input时加入点到numpoint数组中 numpoint.Add (CPoint(point.x-15,point.y)); pNode->number =numpoint.GetSize ...
2、 逻辑运算符及其优先级, 逻辑运算符和逻辑表达式。 3、 if语句。 if语句的三种形式, if语句的嵌套, 条件运算符。 4、 switch 语句. 1 、 while 语句。 2、 do/while 语句。 3、 for 语句。 4、 循环的嵌套。 ...
C语言是一种面向过程的编程语言,是所有编程语言的基础,源代码后缀名为.c
逻辑更大的 切片(正步骤) 切片分配(步骤= 1) 数学 添加 减去 乘 火炬 张量(由数据构造) 置换 去做 脾气暴躁的 切片(负步骤) 切片分配(步骤!= 1) 数学 划分 互惠的 指数和对数 三角函数 双曲函数 里纳尔格...
常用工具逻辑判断、条件计数、数组选择、笛卡尔积计算等功能。 字符串操作和格式化用于生成不同类型的字符串、格式化字符串、从字符串中提取信息和转换字符串的函数。 元胞阵列操作用于逻辑判断,条件计数,元素...
把多维数组(尤其是二维数组)转化为一维数组是业务开发中的常用逻辑,最近跟着黄轶老师学习Vue2.6.1.1版本源码时,看到源码对二维数组降维的代码,所以这里来写一篇,记录一下,加强印象 Vue源码学习 二维数组降为一维...
1、C++数据类型、控制语句、循环、数组等基础 2、C++逻辑算法练习题 3、C++函数、指针 4、C++内存管理等高级知识 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的C++编程思想和...
1、C++数据类型、控制语句、循环、数组等基础 2、C++逻辑算法练习题 3、C++函数、指针 4、C++内存管理等高级知识 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的C++编程思想和...
注意:算术运算符的优先级高于关系运算符、关系运算符的优先级高于逻辑与和逻辑或运算符)、While循环、字符数组、遇到一个问题,scanf通过%s读取字符串时,当遇到空格以后,就会匹配结束,这样没办法把一行带有空格...
foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候... } 在循环里进行的是数组“写”操作,则while比forea
1、练习逻辑运算指令、比较指令和条件转移指令的功能、用法以及与标志位的关系和可用的寻址方式 2、用地址表法,完成下面要求的多分支程序的设计。根据MODE单元中的模式字(0-7)分别转向L0-L7标号处执行。L0-L7处...