首页 > 财经 >

正则小应用:循环链表型数据

2018-09-19 07:07:21 网络整理 阅读:62 评论:0

前端工程师

刚做完个小项目,正准备喘口气,产品说要添加个演示模式。

问:何为演示模式?

答:不用登录,项目仍可用,但产生的数据不上传。

问:怎么启动演示模式开关?

答:顺时针点击四角固定次数后开启。

了解需求后,心想这个简单,不就是个作弊模式嘛,一会儿就搞定。

但实现的过程中想到了一些事情,,并最后有了本篇文章。

方便说明,示意图如下:

正则小应用:循环链表型数据

其中1到4表示相应的四个区域。html脚本示意如下:<divdata-index="1"class="tap-area">1</div><divdata-index="2"class="tap-area">2</div><divdata-index="3"class="tap-area">3</div><divdata-index="4"class="tap-area">4</div>

最开始的脚本代码是:document.querySelectorAll('.tap-area').forEach(v=>v.onclick=handleClick)letarray=[]lettotal=8functionhandleClick(){array.push(this.dataset.index)if(array.length>total){array.shift()}console.log(array)if(check(array)){console.log('进入演示模式')array=[]}}functioncheck(array){if(array.length<total)returnfalsereturn'12341234'===array.join('')}

上面的代码很简单,为四个角添加事件,每次点击时把其代表的数字放进array数组中。并且都check数组是否已满足开启条件。

其核心是check的实现,我最开始想到的点击顺序是:用户从右上角顺时针点击两圈就可以了,即12341234就能满足需求了。

如果没有其他的想法,事情也就到此为止了。

后来想了一想,不管起点是啥,只要是顺时针即可,我该如何实现?也觉得这样比较合理一些。

相关文章