最近遇到的几个有意思的知识点

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';
}

大约就是这个,蠢蠢哒,然后优化后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值