Deleting array elements in JavaScript - delete vs splice

Posted 牛顿的小脑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Deleting array elements in JavaScript - delete vs splice相关的知识,希望对你有一定的参考价值。

javascript 数组中删除元素用 array.splice(start, deleteCount);这个方法。

-----------------------------------------------------

delete will delete the object property, but will not reindex the array or update its length. This makes it appears as if it is undefined:

> myArray = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
  ["a", "b", "c", "d"]
> delete myArray[0]
  true
> myArray[0]
  undefined

Note that it is not in fact set to the value undefined, rather the property is removed from the array, making it appear undefined. The Chrome dev tools make this distinction clear by printing emptywhen logging the array.

> myArray[0]
  undefined
> myArray
  [empty, "b", "c", "d"]

myArray.splice(start, deleteCount) actually removes the element, reindexes the array, and changes its length.

> myArray = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
  ["a", "b", "c", "d"]
> myArray.splice(0, 2)
  ["a", "b"]
> myArray
  ["c", "d"]

以上是关于Deleting array elements in JavaScript - delete vs splice的主要内容,如果未能解决你的问题,请参考以下文章

215. Kth Largest Element in an Array 第K大的数

How do I remove a particular element from an array in JavaScript?

[CF392E]Deleting Substrings

堆排序 && Kth Largest Element in an Array

162. Find Peak Element (Array; Divide-and-Conquer)

Codeforces 392E Deleting Substrin(区间dp)