1.深拷贝:
-
简单的数组
- ... 。 ...真的超好用,直接b=[...a]就可以
- concat。b=[].concat(a)
- splice 。 b = a.splice(0)
-
复杂的数组
- b=JSON.parse(JSON.stringify(a))
- ps:复杂的也可以用于简单的深拷贝,但是简单的还是简单处理,对嘛~
2.合并两个数组
- ...。又是他!!!超好用,用他用他[...a,...b]
- concat。 建议还是别用,损内存
- 骚操作 a.push.apply(a,b)
3.多个if else
- switch.用的多
- 字典映射。这个是最近学会的,后期的维护成本确实低,而且显得有点水平,装逼很舒服,具体就不举例子了,可以私聊
- include.这个现在用的也比较多了
- 三元运算符.不会就给自己两下
- if(a){b}就直接写a&&b
4.循环取值
let listData = [
{
DataProperty: 'name',
Info: '张三|李四|王五|周六|成七|秦九'
},
{
DataProperty: 'sex',
Info: '男|女|女|男|男|男'
},
{
DataProperty: 'age',
Info: '23|35|42|25|24|28'
},
{
DataProperty: 'weight',
Info: '89|49|64|73|71|80'
},
{
DataProperty: 'sdhfsf',
Info: '6|7|3|4|6|7'
}
];
let resultArr = [
{
name:"张三",
sex: "男",
age: "23",
weight: "89",
sdhfsf: "6"
},
{
name:"李四",
sex: "女",
age: "35",
weight: "49",
sdhfsf: "7"
},
{
name:"王五",
sex: "女",
age: "42",
weight: "64",
sdhfsf: "3"
},
...
]
上面是给的数据,下面是要处理成的数据格式(别问为啥给的数据是这样的,后台任性!!)
let result = [];
let arr = listData.map(item=>item.DataProperty);
arr.forEach((item, i) => {
let res ={};
listData.forEach((item1, j) => {
let listInfoArr = item1.Info.split("|");
res[arr[j]]= listInfoArr[i]
});
result.push(res);
});
这个就是解决的一种循环,应该还有,欢迎指导我,哈哈哈哈。
5.多层嵌套的if else拼接字符串
let specialKey= '';
if(e.shiftKey) {
specialKey = '16';
if(e.ctrlKey) {
specialKey = specialKey+ '+' + '17'
if(e.altKey) {
specialKey = specialKey+ '+' + '18'
}
}
} else if(e.ctrlKey) {
specialKey = '17';
if(e.altKey) {
specialKey = specialKey+ '+' + '18'
}
} else if(e.altKey) {
specialKey = '18';
}
大约就是这个,蠢蠢哒,然后优化后