Answers:
不要使用delete,因为它不会从数组中删除元素,只会将其设置为undefined,这将无法在数组的长度中正确反映出来。
如果您知道密钥,则应使用拼接,即
myArray.splice(key, 1);
对于处于史蒂文(Steven)职位的人,您可以尝试以下操作:
for (var key in myArray) {
if (key == 'bar') {
myArray.splice(key, 1);
}
}
要么
for (var key in myArray) {
if (myArray[key] == 'bar') {
myArray.splice(key, 1);
}
}
for (var key in myArray)
代替for (key in myArray)
-否则key
是全局变量,并且如果在该循环内调用具有相同问题的函数,则会得到意外的结果。
delete foo[key];
:D
eval
。可以通过不使用的更简单方法来删除对象/数组的键/索引eval
。
如果您知道键名,只需执行以下操作:
delete array['key_name']
http://www.internetdoc.info/javascript-function/remove-key-from-array.htm
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;
}