从删除数组到ES6的filter的操作数组

一、删除数组

1.1、数组的方法

pop();  // 移除最后一个元素并返回该元素值 

shift();  // 移除最前一个元素并返回该元素值,数组中元素自动前移 

splice(deletePos,deleteCount);  // 删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

1.2、delete方法

缺陷在于需要索引位置,无法与for...of一起使用

  • 这种方式,删除后将那一项变成undefined,数组长度不变,之后遍历的时候会自动略过
delete test[1]; 

1.3、length = 0

  • 这个都知道就没啥说的了

1.4、splice在循环foreach中的使用

  • 因为splice需要索引,索引需要让foreach的参数带上index

arr.forEach((item,index,arr) => {
    if(item === 1){
        arr.splice(index,1) 
    }
});

1.5、ES6的filter方法

  • 这里是一个业务,在数组长度大于0的时候
  • 过滤掉那些在对比中没有差异的项
let result = []
if(result.length > 0) {
          result = result.filter(item => {
            if(!item.leftTable.diff) return '' //!item.leftTable.diff 即 没有差异时,返回'',这个没什么用,因为if语法所以随便写点东西
            return item
            // 因为箭头函数的结尾必须返回,所以最后这个才是必须的
          });
        }

你可能感兴趣的:(大前端,ES6,js,javascript)