js去除数组中的空值,假值

博客介绍了数组的 filter() 方法,该方法可创建新数组,新数组元素是原数组中符合条件的元素。同时指出 filter() 不会对空数组检测,也不会改变原始数组,并给出了举例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

注意: filter() 不会对空数组进行检测。

注意: filter() 不会改变原始数组。

var u=[undefined,undefined,1,'','false',false,true,null,'null'];
u.filter(d=>d);

举例:

data(){
        return{
            test:["","","3","","2"]
        }
    },
mounted(){
        this.test = this.test.filter(d=>d);
        console.log(this.test)
    },

### JavaScript 数组过滤空值、`undefined` 和 `null` 在 JavaScript 中,可以通过多种方式实现数组空值(包括但不限于 `""`, `undefined`, `null` 等)的过滤。以下是几种常见且高效的方法: #### 使用 `Array.prototype.filter()` 结合 `Boolean` 一种简洁的方式是利用 `filter` 方法配合 `Boolean` 构造函数来移除数中的[^3]。这种方法会自动排除掉诸如 `""` (字符串)、`undefined`、`null`、`0`、`false` 和 `NaN` 的元素。 ```javascript const arr = [1, 2, "", 3, null, undefined, 4, 0, false, NaN]; const filteredArr = arr.filter(Boolean); console.log(filteredArr); // 输出: [1, 2, 3, 4] ``` 此方法适用于希望一次性清除所有的情况。 --- #### 自定义回调函数处理特定条件 如果仅需移除某些特定类型的(如只移除 `undefined` 和 `null`),而不影响其他可能的(如 `"false"` 或 `"null"` 字符串),则可自定义回调逻辑[^1]。 ```javascript const arr = ["", "false", "null", undefined, null, 1, 2, 3]; const filteredArr = arr.filter(item => item !== undefined && item !== null); console.log(filteredArr); // 输出: ["", "false", "null", 1, 2, 3] ``` 上述代码通过显式的比较操作保留了非目标的内容。 --- #### 移除字符串及其他特殊 对于更复杂的场景,比如既要除 `undefined` 和 `null` 又要剔除字符串,则可以在回调函数中加入额外判断条件[^2]。 ```javascript const arr = ["hello", "", "world", undefined, null, 0, false]; const filteredArr = arr.filter(item => typeof item === 'string' ? !!item.trim() : true); console.log(filteredArr); // 输出: ["hello", "world"] ``` 这里特别注意的是针对字符串类型进行了修剪 (`trim`) 处理以应对潜在的白字符干扰。 --- ### 总结 - 如果需要快速清理所有推荐直接采用 `.filter(Boolean)` 方案。 - 需求精细化控制时建议编写定制化筛选规则并嵌入到 filter 函数内部执行相应验证流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值