如何从JavaScript中的数组中删除一个特定的元素

0 投票
最新提问 1月 8, 2017 用户: winter (340 分)
我定义了一个整数数组,使用了.push()方法向其添加元素。

有没有比较简单的方法从数组中删除一个特定的元素?类似于array.remove(int);

只能使用核心的JavaScript,无法使用其它框架。

1个回答

0 投票
最新回答 1月 8, 2017 用户: grace (370 分)

首先,找到你要删除元素的index:

var array = [2, 5, 9];
var index = array.indexOf(5);

注:浏览器对indexOf的支持有限,比如Internet Explorer7和8中就不支持。

然后使用splice将其删除:

if (index > -1) {
    array.splice(index, 1);
}

第二个参数splice是删除元素的数量。请注意,splice会修改原数组内元素的位置,并返回一个包含已被删除元素的数组。具体说明见这里


如果你需要在不受支持的浏览器使用indexOf,请尝试下面的polyfill。更多这方面的信息见polyfill在这里

Array.prototype.indexOf || (Array.prototype.indexOf = function(d, e) {
    var a;
    if (null == this) throw new TypeError('"this" is null or not defined');
    var c = Object(this),
        b = c.length >>> 0;
    if (0 === b) return -1;
    a = +e || 0;
    Infinity === Math.abs(a) && (a = 0);
    if (a >= b) return -1;
    for (a = Math.max(0 <= a ? a : b - Math.abs(a), 0); a < b;) {
        if (a in c && c[a] === d) return a;
        a++
    }
    return -1
});
欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...