我对在数组元素上使用删除运算符感到困惑。
我发现 delete 可以与数组元素一起使用,它删除元素但不更新数组 length ,所以基本上那个元素被替换为 undefined 。但是当我测试它时我发现它用空白替换它。
var test = new Array()
delete test[id];
关于这个我有3点
test[id]
id 是元素或元素的索引,因为我读到 id 可以是两者。但是当我测试它时,我发现它只有在我通过索引时才起作用。如果数组没有元素,我尝试通过传递任何值(如
delete test[3]
)来删除怎么办?- 当我删除一个元素时,它会将其替换为未定义或空白?
最佳答案
delete
不会从数组中实际删除元素。它只会将值设置为undefined
删除
不会改变数组的长度
删除
演示
var arr = [1, 2, 3, 4, 5];
delete arr[2];
document.write(arr);
console.log(arr);
document.write('<br />Length: ' + arr.length);
使用splice()
The splice() method changes the content of an array by removing existing elements and/or adding new elements.
splice()
将静默返回,如果您传递了一个要删除的越界索引。
arr.splice(indexToDelete, 1);
splice()
演示
var arr = [1, 2, 3, 4, 5];
arr.splice(2, 1);
arr.splice(100, 1); // For out of bounds index, it fails silently
document.write(arr);
console.log(arr);
document.write('<br />Length: ' + arr.length);
关于数组列表元素上的 Javascript 删除运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32265234/