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

数组列表元素上的Javascript删除运算符,javascript,arrays,Javascript,Arrays,我对数组元素上的delete操作符的用法感到困惑 我发现delete可以与数组元素一起使用,它删除了元素,但不更新数组长度,因此基本上该元素被替换为undefined。但是当我测试它时,我发现它将替换为blank var test = new Array() delete test[id]; 关于这一点,我有3点 test[id]id在这里是元素或元素的索引,正如我读到的,id可以是两者。但当我测试它时,我发现它只有在通过索引时才起作用 如果数组没有元素,而我试图通过传递任何值(如delete

我对数组元素上的delete操作符的用法感到困惑

我发现delete可以与数组元素一起使用,它删除了元素,但不更新数组长度,因此基本上该元素被替换为undefined。但是当我测试它时,我发现它将替换为blank

var test = new Array()
delete test[id];
关于这一点,我有3点

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

  • 如果数组没有元素,而我试图通过传递任何值(如
    deletetetest[3]
    )来删除,该怎么办

  • 当我删除一个元素时,它会将其替换为未定义或空白
  • 不要在数组上使用,请使用

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

    var-arr=[1,2,3,4,5];
    删除arr[2];
    文件编写(arr);
    控制台日志(arr);
    
    文件。写入(“
    长度:”+arr.Length)删除运算符从对象中删除属性。-你为什么不试试呢?@torazaburo是的,我终于试过了,我正在更新问题
    []
    比使用
    new Array()
    创建新数组更好