0

我创建了一个array

myarray = new Array();
myarray['test_a'] = "test a";
myarray['test_b'] = "test b";

现在我想删除索引为“test_b”的条目。我试过这样:

var del = "test_b";
for(key in myarray){
   if(key==del){
      myarray.splice(key,1);
   }
}

但是它不起作用。没有错误。我刚刚在 firebug 中检查了数组的条目,并提到“test_b”仍然存在。怎么了?感谢帮助。

4

2 回答 2

5

数组意味着有数字索引,你想要一个对象,那么你可以简单地使用delete

var obj = {};
obj.test_a = "test a";
obj.test_b = "test b";

var del = "test_b";
delete obj[del];

console.log(obj); //=> { test_a: "test_a" }
于 2013-10-03T02:49:50.703 回答
4

splice适用于数字索引,您所拥有的是您已向数组对象添加了一个属性。您只需执行删除即可从数组对象中删除该属性。

  delete myarray[del];

演示

如果您只是在数组上定义属性并将其用作对象,那么最好考虑使用对象而不是创建数组来存储属性

于 2013-10-03T02:49:10.887 回答