Js-删除数组中的某个元素

删除数组中某个元素的方法一般有两种:

  • splice
  • delete

下面来详细介绍这两种方法:

splice

  • splice()方法通过删除替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
  • 语法:
    array.splice(start[, deleteCount[, item1[, item2[, _...]]]]_)
    • start:修改开始的位置(从0计数)。
      若值超出了数组的长度(length-1),则从数组末尾开始添加内容。如果是负值,则表示从数组末位开始(最后一位是-1)。如果负数的绝对值大于数组的长度,则表示从第一位开始。
    • deleteCount:整数,表示要移除的数组元素的个数。(含start位) 可选
      如果 deleteCount是 0 或者负数,则不移除元素。
    • item:要添加进数组的元素,从start 位置开始。
  • 返回值:
    由被删除的元素组成的一个数组。如果没有删除元素,则返回空数组。
    ⚠️ splice会改变原有数组

下面来看🌰栗子:

栗子

首先声明并赋值了一个test1数组,之后通过splice从第三项(index=2)开始(含第三项),删除3个元素,然后加入三个字符串。
返回的值是被删去的元素组成的数组,test1的数组更新,数组里面的元素已经发生了改变。

delete

  • delete 操作符用于删除对象的某个属性。
  • 语法:
    delete expression =>
    • delete object.property
    • delete object['property']
  • 返回值:Boolean值。
    ⚠️delete操作符会改变原有的数组或对象
    关于delete操作符的更多知识可以查看MDN | delete文档

下面来看🌰栗子:

操作对象:

对象示例1
对象示例2
首先声明一个对象a,对象a有三个键值对,删除对象aname,返回值为true,打印a发现对象已经变了。
然后删除一个不存在的atest属性,返回值依旧是true,打印a发现没有变化。

操作数组:

数组示例
首先声明并赋值一个数组test1,然后delete test1[0]删去test的第一个值,打印test1,发现index = 0empty,打印test1[0],值为undefined。

这是数组使用splice方法和delete操作符的一个区别,使用splice后数组会重排,数组内元素的index改变;而使用delete之后,数组内元素的index不变,删去的元素的位置变成了empty,打印值为undefined

(END)


关于操作数组还有以下方法:

  • push => push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
  • pop => pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
  • shift => shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
  • unshift => unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。
  • concat => concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。