7.25 三元运算叠加 utils的作用 直接更改小程序data里数组的值

  1. 三元运算叠加
let tem = 1;
    let s = tem === 10?1:3?2:7;
    console.log(s);//2 

1 不等于 10 执行 冒号后面的三元表达式 3 转换为布尔值是真 所以为2

适用场景:可以省略ifelse更加美观

wx.showToast({
          title:
            this.data.searchType == 1 || this.data.searchType == 2
              ? "请正确输入商品名称、商品编码"
              : this.data.searchType == 3
              ? "请正确输入品牌"
              : "请输入搜索内容", //提示的内容,

(this.data.searchType == 1 || this.data.searchType == 2)如果都不是就变成了表达式

this.data.searchType == 3? “请正确输入品牌” : “请输入搜索内容”, //提示的内容
简单的分解可以达到ifelse的效果。洽萍姐姐赞~

但是注意运算优先级,上面的情况是===运算符优先级大于三目运算符优先级
另一种情况:
在这里插入图片描述
此时是先计算3?0:7变成了0,所以再回来就变成了10?0:0。这就是优先级的坑
总结就是如果想要保证是自己所想的,一定加上()

  1. utils的作用
    以前一直不屑utils的作用,认为写多一个js文件有什么p用,现在才知道。好处是大量节省了重复的判断或者是计算代码…
    例如在utils里:
    直接在utils里写一个方法(类似于对象中的方法)
/**
 * 秒数计算倒计时间(天,时,分,秒)
 */
function formatToSecond(second_time) {
  let total = {};
  if (parseInt(second_time) > 60) {
    var second = parseInt(second_time) % 60;
    total.second = second;
    var min = parseInt(second_time / 60);
    if (min > 60) {
      min = parseInt(second_time / 60) % 60;
      total.min = min;
      var hour = parseInt(parseInt(second_time / 60) / 60);
      if (hour > 24) {
        hour = parseInt(parseInt(second_time / 60) / 60) % 24;
        var day = parseInt(parseInt(parseInt(second_time / 60) / 60) / 24);
        total.day = day;
        total.hour = hour;
      }
    }
  }
  return total;
}

/**
 * 秒数计算倒计时间(X天X时X分)
 * @param{String} second_time 秒数
 * @param{Number} type 类型(1:数据对象 2:X天X时X分字符串 )
 */
function formatSeconds(time, type = 2) {
  var d = parseInt(time / (24 * 60 * 60));
  var h = parseInt((time / (60 * 60)) % 24);
  var m = parseInt((time / 60) % 60);
  var s = parseInt(time % 60);
  // d = addZero(d)
  h = addZero(h);
  m = addZero(m);
  s = addZero(s);
  let timeString = d + "天" + h + "时" + m + "分";
  return type == 2 ? timeString : { second: s, min: m, hour: h, day: d };
}
function addZero(i) {
  return i < 10 ? "0" + i : i + "";
}


一定记得在下面导出:
exports.formatToSecond = formatToSecond;
exports.formatSeconds = formatSeconds;

这样子我们就可以在另一个js文件对象里调用这个方法节省代码量和重复计算的时间
先导入:const util = require("…/util/util");
let ans = util.formatSeconds(1000, 2);

  1. 直接更改小程序data里数组的值
    传统来说一般都是创建一个临时变量来直接修改再setdata
    但其实是可以直接修改其对象里的属性的
    例:
this.setData({
       [`couponList[${index}].status`]: 1,
});

多看同事代码简直给力~~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值