- 三元运算叠加
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。这就是优先级的坑
总结就是如果想要保证是自己所想的,一定加上()
- 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);
- 直接更改小程序data里数组的值
传统来说一般都是创建一个临时变量来直接修改再setdata
但其实是可以直接修改其对象里的属性的
例:
this.setData({
[`couponList[${index}].status`]: 1,
});
多看同事代码简直给力~~