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; } |