java - 模仿Java的ArrayList.remove(o)的函数

标签 java javascript arraylist

如何实现与 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/

相关文章:

java - 如何将数据存储在以下结构中?

java - 线程 "main"org.apache.spark.SparkException : Task not serializable 中出现异常

java - 如何仅使用强制转换来显示数字的前 2 位小数?

Javascript focus() 方法不适用于 Google Apps 脚本

javascript - 如何在 Leaflet map 上打印/显示/绘制 MultiPolygon GeoJSON

java - 从数组列表中删除中间元素

java - 使用JSlider移动JScrollPanel?

java - JPA 中的参数化查询出现 "org.hibernate.QueryException: Unable to resolve path..."错误

javascript - 满足的状态

java - Arraylist追加不覆盖文本文件