微信小程序之随机数

微信小程序之随机数

我们的需求是用户是第一次进入或是选择拍照时给出一条随机文案
而当再一次进入或是选择同一张相片时,我们需要给出当时给用户展示的文案

随机数的语句是这样写的

//我规定随机数的大小不能大于文案的长度
var a = Math.floor((Math.random() * list.length))

根据需求我们就需要把当时展示给用户的那一条文案存入缓存,方便比对

//判断用户点击的是拍照还是选择相片
//num=0的话是用户选择了拍照
if (num == 0) {
	  //拍照永远给出随机文案
      console.log(a)
      this.setData({
        list: list[a],
        a: a
      })
      //将这次结果存入缓存
      wx.setStorage({
        data: list[a],
        key: 'camera',
      })
    //否则用户选择了选择相片
    } else {
      //从缓存试提取文案,如果有代表用户并不是第一次进入
      wx.getStorage({
        key: 'message',
        success: (res) => {
          //从缓存中取出照片大小进行比对
          wx.getStorage({
            key: 'photo1',
            success: (res) => {
              photo1 = res.data
              //如果照片大小相同
              if (t == photo1) {
                //取出文案并设置到界面
                wx.getStorage({
                  key: 'message',
                  success: (res) => {
                    list = res.data
                    this.setData({
                      list: list,
                      a:a
                    })
                  }
                })
              //如果不同的话代表用户选择的不是同一张相片
              } else {
                //调用随机数
                this.setData({
                  list: list[a],
                  a: a
                })
                //存入缓存
                wx.setStorage({
                  data: list[a],
                  key: 'message',
                })
              }
            }
          })
        },
        //从缓存试提取失败代表用户是第一次进入
        fail: (err) => {
          //调用随机数
          this.setData({
            list: list[a],
            a: a
          })
          //存入缓存
          wx.setStorage({
            data: list[a],
            key: 'message',
          })
        }
      })
    }

我们根据需求来理清逻辑,如果用户第一次进入那么在缓存中就没有存入文案,所以第一步就是从缓存中试提取文案,如果没有代表用户第一次进入,第一次进入就给出一个随机数并把文案存入缓存。 如果从缓存当中获取到了文案,那么就需要比对照片的大小来进行判断是否是同一张照片,如果是同一张照片的话那么就给出同一条文案,如果不同的话那就再次给出随机数并将文案存入缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值