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)
});
}
当然,还有很多其它的实现方式,选择自己最顺手的即可。
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=751