JavaScrpt利用Filter快速去除数组array中的空字符和undifined字符

背景

有时涉及字符和数组的转换工作,利用逗号分割和合并数组。但是遇到某个字符为空时出现
str=",aa,dd",这样转化出来的数组就是["","",“aa”,"",“dd”]里面包含空字符。

问题

[""]的长度是1,[]长度是0,这样会影响到对数组是否为空的判断。用vue等框架渲染会有问题。

解决方案

arr=["",null,undefined,“0”]

1 去除空字符串

方式1:

arr = arr.filter(m=>m}); 
注:lambda表达式,m代表数组元素。等同下面方式2

方式2:

arr = arr.filter(function(e){return e}); 

原理

array.filter(Boolean)括号内是返回值,如果为真就返回元素,为false就剔除元素。
由于“”空字符串==false,所以空字符串被剔除。
[1, false, "", undefined, 2].filter(Boolean); // [1, 2]

思考?

如何剔除换行符?

arr = arr.filter(e=> e.replace(/(\r\n|\n|\r)/gm,""));
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值