js如何删除数组中的空值

首先我使用的下面这种方式

function array_clean1(array) {
    var n = []
    for (var i = 0; i < array.length; i++) {
        if (array[i] !== '') n.push(array[i])
    }
    return n
}

目的是达到了,但是却引入了新的变量,那么换一种解决方式,直接操作原数组

function array_clean2(array) {
    for (var i = 0; i < array.length; i++) {
        if (array[i] === '') {
            array.splice(i, 1)
            i--
        }
    }
    return array
}

当然,将其挂在Array的原型上也可以

Array.prototype.clean = function (deleteValue) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] === deleteValue) {
            this.splice(i, 1)
            i--
        }
    }
    return this
}

如果使用filter方法,也可以达到同样的目的

function array_clean3(array) {
    return array.filter(function (val) {
        return val
    })
}

还有两种比较神奇的做法,我在网上看到了,也可以达到去除空值的效果

方式一

//如果是javascript 1.6或更高的版本
function array_clean4(array) {
    return array.filter(function () {
        return true
    })
}

方式二,这个就更简单了

function array_clean5(array) {
    return array.filter(Boolean)
}

这个方法等价于如下示例,下面的这个看起来更加好理解一些。

function array_clean6(array) {
    return array.filter(function (x) {
        return Boolean(x)
    });
}

当然,还有很多其它的实现方式,选择自己最顺手的即可。

如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注