优化这段代码 submit(){ const phone = uni.getStorageSync('phone'); if(this.authuserlist.length>1 && this.authuserlist[this.authuserlist.length-1].userPhone == ""){ this.authuserlist.pop() } if(this.authuserlist.length === 1 && this.authuserlist[this.authuserlist.length-1].userPhone == ""){ this.unauth(); return; }else{ let isdouble = this.unique(this.authuserlist) if(isdouble.length < this.authuserlist.length){ uni.showToast({ title:'授权账号中有重复账号' , icon:'none' }); return; } for(let i in this.authuserlist){ if(this.authuserlist[i].userPhone == phone){ uni.showToast({ title:'不能授权给自己的账号'+this.authuserlist[i].userPhone, icon:'none' }); this.ischeckphone = false break; } } if(this.ischeckphone){ this.checkphone() } } },
时间: 2024-03-16 11:42:08 浏览: 14
这段代码的优化思路:
1. 尽量减少循环次数,减少不必要的计算和内存分配。
2. 避免重复计算和重复操作。
3. 使用更高效的数据结构和算法。
4. 简化代码逻辑和结构,提高代码可读性和可维护性。
针对以上思路,对代码进行优化:
```
submit() {
const phone = uni.getStorageSync('phone');
const { authuserlist } = this;
// 判断是否需要删除最后一项空数据
if (authuserlist.length > 1 && authuserlist[authuserlist.length - 1].userPhone == "") {
authuserlist.pop();
}
// 判断是否需要取消授权
if (authuserlist.length === 1 && authuserlist[authuserlist.length - 1].userPhone == "") {
this.unauth();
return;
}
// 判断是否有重复的授权账号
const uniqueList = Array.from(new Set(authuserlist.map(item => item.userPhone)));
if (uniqueList.length < authuserlist.length) {
uni.showToast({
title: '授权账号中有重复账号',
icon: 'none'
});
return;
}
// 判断是否授权给自己的账号
if (authuserlist.some(item => item.userPhone == phone)) {
uni.showToast({
title: '不能授权给自己的账号' + phone,
icon: 'none'
});
return;
}
// 校验手机号码
this.checkphone();
}
```
优化后的代码进行了如下改进:
1. 使用 const 定义不变量,减少不必要的计算和内存分配。
2. 将判断是否删除最后一项空数据、判断是否取消授权、判断是否有重复的授权账号、判断是否授权给自己的账号,以及校验手机号码等操作,分别拆分成独立的步骤,避免重复计算和重复操作。
3. 通过 Array.from(new Set(array)) 的方式,使用 ES6 的 Set 数据结构去重,避免使用 for 循环遍历的方式进行去重,提高效率。
4. 使用 some 方法代替 for 循环遍历,简化代码结构和逻辑。
5. 简化变量命名,提高代码可读性和可维护性。