如何实现与 ArrayList.remove(o) 执行相同操作的函数?
我拥有的最接近的是
Array.prototype.remove = function(o) {
var index = this.indexOf(o);
if(index == -1) {
return;
}
return this.splice(index, index);
}
但是它在第二行抛出错误,声称 indexOf(o)
不存在。 (找不到函数indexOf()
)
最佳答案
IE7及以下版本不支持
Array.prototype.indexOf
。因此,您之前还需要填充该方法,例如
Array.prototype.indexOf = Array.prototype.indexOf || function( search ) {
for(var i = 0, len = this.length; i < len; i++) {
if( this[ i ] === search ) {
return i;
}
}
return -1;
};
(简化示例)。
此外,您对 .splice()
的调用是错误的,第二个参数是您要删除的元素的长度,它应该是 1
。
Array.prototype.remove = function(o) {
var index = this.indexOf(o);
if(~index) {
this.splice(index, 1);
}
};
关于java - 模仿Java的ArrayList.remove(o)的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10336058/