如何在javascript中取消设置数组中的元素?

How do I unset an element in an array in javascript?

如何从数组foo中移除键"bar",以便"bar"不会出现在

1
for(key in foo){alert(key);}

不要使用delete,因为它不会从数组中删除元素,它只会将其设置为未定义,这将不会正确反映在数组的长度中。

如果你知道钥匙,你应该使用接头,即

1
myArray.splice(key, 1);

对于史蒂文这个职位的人,你可以尝试这样的方法:

1
2
3
4
5
for (var key in myArray) {
    if (key == 'bar') {
        myArray.splice(key, 1);
    }
}

1
2
3
4
5
for (var key in myArray) {
    if (myArray[key] == 'bar') {
        myArray.splice(key, 1);
    }
}


1
delete foo[key];

D


一个重要的注意事项:JavaScript数组不是像从PHP中使用的那些关联数组。如果"数组键"是字符串,则不再对数组的内容进行操作。您的数组是一个对象,使用括号表示法访问名为的成员。因此:

1
2
3
4
var myArray = [];
myArray["bar"] = true;
myArray["foo"] = true;
alert(myArray.length); // returns 0.

因为没有向数组中添加元素,所以只修改了myarray的bar和foo成员。


如果您知道密钥名称,请执行以下操作:

1
delete array['key_name']


我就是这样做的

1
 myArray.splice( myArray.indexOf('bar') , 1)


http://www.internetdoc.info/javascript-function/remove-key-from-array.htm网站

1
2
3
4
5
6
7
8
9
10
11
12
removeKey(arrayName,key);

function removeKey(arrayName,key)
{
 var x;
 var tmpArray = new Array();
 for(x in arrayName)
 {
  if(x!=key) { tmpArray[x] = arrayName[x]; }
 }
 return tmpArray;
}