1.vue深嵌套解决方案
<div class="item-content">{{(item.pool||{}).name}}</div>
2.强制布尔值
const myBoolean = !! myVariable; //将变量强制转换为布尔值而不更改其值
!!null // false
!!undefined //false
!!false //false
!!true //true
!!"" //false
!!0 //false
!!1 //true
!!{} //true
!![] //true
基于某个条件为对象设置属性
const myObject = {... myProperty && {propName:myPoperty}};//使用spread运算符有条件的在对象上设置属性
let myProperty = 'Jhon'
const myObject = {...myProperty && {propName:myProperty}} //{propName:'Jhon'}
let myProperty = ''
const myObject = {...myProperty &&{propName:myProperty}} //{}
//如果myProperty结果为false,则&&失败并且不设置新属性;否则,如果不为空,&&将设置新属性并覆盖原来的值
合并对象
const mergedObject = {...ObjectOne,...objectTwo}
const mergedObject = {...{name;'Jhon',age;'18},...{name1:'Jhon1',age1:'12'}};//{name;'Jhon',age;'18,name1:'Jhon1',age1:'12'}
支持无限制合并,但如果对象之间存在相同的属性,则后面的属性会覆盖前面的属性。
交换变量
不使用中间变量的情况下交换两个变量的值
[varA,varB] = [varB,varA];
let a = 1;
let v = 2;
[ a,b ] = [ b, a ] //a=2 b=1
删除boolean 为false
const clean = dirty.filter(Boolean);
const clean = [0,false,true,undefiend, null,'',12,15].filter(Boolean);
[true,12,15]
转换元素类型
const stringArray = numberArray.map(String);
const stringArray = [1,2,3].map(String); //["1","2","3"]
const nuberArray = stringArray.map(Number);
const stringArray = ["1",'2','3'].map(String); //[1,2,3]
快速创建数字数组
const numArray = Array.from(new Array(10),(x,i)=>i);
//要创建一个数组并用数字填充它,索引为0
随机生成六位数字验证码
const code = MathFloor(Math.random()*1000000).toString.padStart(6,"0");
身份证正则
const IDReg= /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)/;