如何从JavaScript中的数组中删除特定的元素|三体教程
文章目录

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

有一个数组,使用.push()方法向其添加元素。

有没有什么办法从数组中删除一个特定的元素?

相当于类似array.remove(int)的方法。

必须得使用javascript,不能使用其他的框架。

解决这个问题,我们首先得找到index,也就是我们想要删除的那个元素。

var array = [2, 5, 9];

var index = array.indexOf(5);

注意,浏览器对indexOf的支持是不同的,在IE7和8中都不支持。

然后使用splic来删除它。

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

splice第二个参数是要删除的元素的数量。

请注意,splice修改数组,并返回一个新的数组并包含已被删除的元素(undefined)。

如果要在不支持indexOf的浏览器中使用,可以尝试使用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
});

但以上的方法并不是最好的,但小编也没找到更好的方法。

因为如果我们在使用动态值(从数组中添加或删除动态值),而数组中又不存在这个值(索引变为-1),则上面的代码将会删除数组的最后一个元素。

本文网址:http://www.santii.com/article/178.html


数据更新时间:2018-05-25