从javascript数组中删除索引altogehter

Nic*_*asZ 1 javascript arrays

如果我宣布这个

var data = [];
data [300] = 1;
data [600] = 1;
data [783] = 1;
Run Code Online (Sandbox Code Playgroud)

我有一个长度为784的数组,但其中只有3个已定义的项目.

由于splice(300,1)会删除项目和索引,但也会移动每个连续的位置,如何从数组中删除索引300中的对象而不改变数组的顺序,所以当我使用

for(var x in data)
Run Code Online (Sandbox Code Playgroud)

它可以在索引600和783上正确迭代2次?

我尝试使用,data[300] = undefined但索引300仍然迭代.

dsg*_*fin 5

你可以使用delete:

delete data[300];
Run Code Online (Sandbox Code Playgroud)

这会将索引的值设置为undefined,但不会修改元素索引本身.

在此处详细了解删除运算符.