如何从数组 foo 中删除键“bar”,以便“bar”不会出现在
for(key in foo){alert(key);}
如何从数组 foo 中删除键“bar”,以便“bar”不会出现在
for(key in foo){alert(key);}
不要使用delete ,因为它不会从数组中删除元素,它只会将其设置为未定义,然后不会正确反映在数组的长度中。
如果您知道密钥,您应该使用splice即
myArray.splice(key, 1);
对于史蒂文这样的人,你可以尝试这样的事情:
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);
}
}
delete foo[key];
:D
如果您知道密钥名称,只需这样做:
delete array['key_name']
一个重要的注意事项:JavaScript 数组不是像您可能在 PHP 中习惯的那样的关联数组。如果您的“数组键”是字符串,则您不再操作数组的内容。您的数组是一个对象,您使用方括号表示法访问名为 <key name> 的成员。因此:
var myArray = []; myArray["bar"] = true; myArray["foo"] = true; 警报(myArray.length);// 返回 0。
因为您还没有向数组添加元素,所以您只修改了 myArray 的 bar 和 foo 成员。
这就是我要做的
myArray.splice( myArray.indexOf('bar') , 1)