JS JavaScript 移除 数组中 某个元素,JS 中提供了 

JS 删除的数组的某一项,提供了 splice 函数:

  • splice(index,len,[item]) 注释:该方法会改变原始数组。
  • splice 有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值
    • index 数组开始下标 
    • len 替换/删除的长度 
    • item 替换的值,删除操作的话 item为空

基本用法:

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

//(2)删除起始下标为1,长度为2的一个值(len设置2) 
let arr2 = ['a','b','c','d']
arr2.splice(1,2);
console.log(arr2); //输出:['a','d']

//(3)替换起始下标为1,长度为1的一个值为‘ttt',len设置的1 
let arr3 = ['a','b','c','d'];
arr3.splice(1,1,'ttt');
console.log(arr3);//输出:['a','ttt','c','d'] 

//(4)替换起始下标为1,长度为2的两个值为‘ttt',len设置的1
let arr4 = ['a','b','c','d'];
arr4.splice(1,2,'ttt');
console.log(arr4);//输出:['a','ttt','d'] 

//(5)添加 ---- len设置为0,item为添加的值;表示在下标为1处添加一项'ttt'
let arr5 = ['a','b','c','d'];
arr5.splice(1,0,'ttt');
console.log(arr5);//输出:['a','ttt','b','c','d']

//(6)delete方法删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变
let arr6 = ['a','b','c','d'];
delete arr6[1];
console.log(arr6);//输出:["a", undefined × 1, "c", "d"] 中间出现两个逗号,数组长度不变,有一项为undefined

给 Array 添加 remove 方法:


/* eslint no-extend-native: ["error", { "exceptions": ["Array"] }] */
Array.prototype.remove = function (val) {
  let index = this.indexOf(val)
  if (index > -1) {
    this.splice(index, 1)
  }
}