数组列表元素上的 Javascript 删除运算符

标签 javascript arrays

我对在数组元素上使用删除运算符感到困惑。

我发现 delete 可以与数组元素一起使用,它删除元素但不更新数组 length ,所以基本上那个元素被替换为 undefined 。但是当我测试它时我发现它用空白替换它。

var test = new Array()
delete test[id];

关于这个我有3点

  1. test[id] id 是元素或元素的索引,因为我读到 id 可以是两者。但是当我测试它时,我发现它只有在我通过索引时才起作用。

  2. 如果数组没有元素,我尝试通过传递任何值(如 delete test[3])来删除怎么办?

  3. 当我删除一个元素时,它会将其替换为未定义或空白?

最佳答案

不要使用 delete在阵列上,使用 splice()

  1. delete 不会从数组中实际删除元素。它只会将值设置为 undefined
  2. 删除 不会改变数组的长度

删除演示

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/

相关文章:

javascript - 如何使用 "Fetch API"在javascript和c#之间传递数据?

javascript - 如何使用 jQuery 和复选框添加 url 参数末尾?

arrays - Javascript 列出数组中包含嵌套数组中的值的对象

php - 将 PHP 数组清理成一个

arrays - strsplit : undefined function for input type 'char'

javascript - JS代码返回错误

javascript - 当输入错误时,jQuery自动完成ajax无法自动更正

javascript - 如何在 Node js中解析JSON数组

javascript - 无法读取 JavaScript 数组对象未定义的属性 'includes'

javascript - HTML 数据列表中的动态数组