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)
。但它们更安全。
问题是我想知道 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)
。但它们更安全。