袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

js如何删除数组中的元素

浏览量:606

filter

filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

arr = [
  {id:1,name:'aaa'},
  {id:2,name:'bbb'},
  {id:3,name:'ccc'}
];

arr = arr.filter(item => item.id !== 2)

delete

delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的索引保持不变

下面这样删除后会留有一个undefined占位符:

for(var item in arr){  
if(arr.hasOwnProperty(item)){    
if(arr[item].id === 2){
      delete(arr[item]);      
      continue;
    }
  }
}

splice

数组长度相应改变,但是原来的数组索引也相应改变

delete(arr[item])改成arr.splice(item,1);


:js中的splice方法


   splice(index,len,[item])    注释:该方法会改变原始数组。

        splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值

        index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空


如:arr = ['a','b','c','d']


删除 ----  item不设置


arr.splice(1,1)   //['a','c','d']         删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变


arr.splice(1,2)  //['a','d']          删除起始下标为1,长度为2的一个值,len设置的2


替换 ---- item为替换的值


arr.splice(1,1,'ttt')        //['a','ttt','c','d']         替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1


arr.splice(1,2,'ttt')        //['a','ttt','d']         替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1


添加 ----  len设置为0,item为添加的值


arr.splice(1,0,'ttt')        //['a','ttt','b','c','d']         表示在下标为1处添加一项‘ttt’


打赏