最近做一个用来做题的小程序,连续作对 5 题就会触发一个方法,其中有一个条件判断比较有意思的,一般不会想到,于是就记录下来。
首先小程序要求是每一天只会触发一次,触发过一次后就要等第二天才能触发,然后就是连续做对五次才会触发了。
一天一次,这样记录
程序名字:设定时间
last_excellent_time = new Date();
wx.setStorageSync('last_excellent_time', last_excellent_time.getDate());
重要的是怎么判断,如下
程序名字:判断主体
var today = new Date();
if(!last_excellent_time || last_excellent_time != today.getDate() ) {
程序体
}
解读一下,当 last_excellent_time 不存在 或是 “上次所存的时间” 不等于 “今天的几号”,就不能进入程序体
我们一般先执行一次从 storage 中获取 last_excellent_time,当获取不到时,storage 就会返回 null,程序“判断主体”就可以进入程序体了,当进入程序体你可以设立一个 last_excellent_time ,如程序“设定时间”,这样第二次执行程序“判断主体”,第一个条件就不会通过,自如要判断 storage 的时间是否和 today 是相同了,如果相同就肯定不会触发进入程序体了。
不知道同学们都能否看明白我所要表达的意思,但是这并不仅仅是小程序,就是一个程序的想法,一句话总结就是如何判断一天只会在做对五次题目的情况下触发方法。