问题是我想知道删除运算符如何从数组中删除值。 它会循环整个数组吗? 从数组中删除项目并注意时间复杂度的最佳方法是什么。
感谢您的回答。
最佳答案
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)
。但它们更安全。
关于javascript - JavaScript 中的删除运算符如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65727292/