javascript 中的删除运算符如何工作?

How does delete operator in javascript works?

问题是我想知道 delete 运算符如何从数组中删除一个值。 它会循环整个数组吗? 从数组中删除和删除项目的最佳方法是什么,注意时间复杂度。

感谢您的回答。

要从数组中删除一个元素,我看到 splice 最常与作为 1 传递的 delete_count 一起使用(这意味着删除单个元素)。

let arr = [1, 2, 3];
arr.splice(0, 1); // delete `1` element starting at index `0`
// the above expression returns a new array containing the removed items
console.log(arr); // prints: [2, 3], since splice changes the array in place.

delete 运算符只是删除数组元素的所有属性。因为查找元素需要 O(1) 并且删除属性需要 O(1) 整个事情需要 O(1)。请注意,删除不会更改数组的 length 属性,也不会更改数组中其他元素的索引。所以行为如下:

const arr = [0,1,2,3,4,5]
delete arr[2]
console.log(arr[2]) // undefined

所以 delete 可能是时间复杂度方面的最佳方法,因为使用 splice 或类似函数的方法需要 O(n)。但它们更安全。