问题

我有一个整数数组,我使用 .push()方法添加到

有没有简单的方法从数组中删除特定的元素?相当于 array.remove(int); .

我必须使用核心 JavaScript - 框架.



解决方法

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

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

注意: indexOf的浏览器支持< a>受限;它在Internet Explorer 7和8中不受支持.

然后使用 splice :

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

splice 的第二个参数是要删除的元素数.请注意, splice 会修改数组,并返回一个包含已删除元素的新数组.


如果您需要在不受支持的浏览器中使用 indexOf ,请尝试以下 polyfill .查找有关此 < em> 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
});



相关问题推荐