首页 > 编程语言 > 详细

js无限轮播算法中干掉if判断

时间:2016-05-18 12:15:41      阅读:276      评论:0      收藏:0      [点我收藏+]

无限轮播在网页应用中经常见到,这其中算法各有千秋,在学习算法分析一书中发现自增取余方法可以干掉一些不必要的if判断,具体代码如下:

 1 var arr= [1,2,3,4,5,6,7,8];
 2 var index=0;
 3 var length=arr.length;
 4 setInterval(function(){
 5   // 自增
 6   console.log(arr[index++%length]);
 7   // 自减
 8   // console.log(arr[index=(index+length-1)%length]);
 9 }, 1000);
10 /*
11 //性能测试
12 console.time("start");
13 for (var i = 0; i < 50000; i++) {
14   arr[index++%length];
15 };
16 console.timeEnd("start"); //60ms左右
17 console.time("start");
18 for (var i = 0; i < 50000; i++) {
19   if(++index>=length){
20     index=0;
21   }
22   arr[index];
23 };
24 console.timeEnd("start"); //60ms左右*/

从性能测试以及算法复杂度来看,跟if判断在伯仲之间,应用场景因地制宜。

js无限轮播算法中干掉if判断

原文:http://www.cnblogs.com/linx/p/5504405.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!