从javascript数组中删除条目

时间:2013-10-03 02:47:51

标签: javascript arrays

我创建了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”仍然存在。怎么了?谢谢你的帮助。

2 个答案:

答案 0 :(得分: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" }

答案 1 :(得分:4)

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

  delete myarray[del];

<强> Demo

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