js常见问题解决技巧

  1. js将二维数组转一维数组 this.OrderItems = [].concat(...this.newList.map(item => item.OrderItems));
  2. js的splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目,该函数会改变原来的数组
  3. 从数组中删除指定的项,思路:先用indexOf查出位置,再用splice删除(数组中的排序会重新排列,如果delete arr[i],则不重新排序)。
    示例代码:
    let arr[1,5,2,8,6,5]; let index = arr[i]; if(index > -1){ arr.splice(index,1);
  4. 利用indexOf和过滤函数filter进行数组去重,原理:indexOf判断字符是否在字符串中存在,存在则返回该元素或第一次
  5. 利用indexOf和filter进行去重,原理:判断一个字符是否在字符串中存在,如果存在则返回字符第一次出现的位置的索引,不存在返回-1,如果是重复元素,arr.indexOf(ele) 返回的索引必然和当前索引index不一致。 arr.indexOf(ele) === index为false
    arr.filter((ele, index, arr) => { return arr.indexOf(ele) === index })
    去空字符 return ele && ele.trim();
  6. es6的去重,使用set不能重复key的特性,如下:
    let arr = [1,2,3,4,5,2]; let arrFilter = [...new Set(arr)];
  7. es11的可选链操作符 ?.
    作用:引用为空(nullish, 即 null 或者 undefined) 的情况下不会引起错误
    在不知道tortoise属性是否存在的情况下,要这样写:
    const tortoise = info.animal && info.animal.reptile && info.animal.reptile.tortoise;
    如果很多层的话,写起来很麻烦,es11的可选链操作符可以简化上面代码:
    const tortoise = info.animal?.reptile?.tortoise;
  8. 简单的深拷贝,前提,没有使用复杂数据,比如:Date、函数、undefined、Infinity、RegExp、Map、Set、blob、、稀疏数组、类型化数组或其他复杂类型
    JSON.parse(JSON.stringify(object))

待补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值