有时涉及字符和数组的转换工作,利用逗号分割和合并数组。
但是遇到某个字符为空时出现str=" ,aa,dd",
这样转化出来的数组就是["","",“aa”,"",“dd”]里面包含空字符。
[""]的长度是1,[]长度是0,这样会影响到对数组是否为空的判断
待去除的数组:
arr=["",null,undefined,“0”]
使用filter()
arr = arr.filter(m=>m});
原理
array.filter(Boolean)括号内是返回值,如果为真就返回元素,为false就剔除元素。
由于“”空字符串==false,所以空字符串被剔除。
[1, false, "", undefined, 2].filter(Boolean); // [1, 2]
与其他函数连续使用
例如: 去除数组的空字符串,并且转换为number数组
let unitIds = ['','333','444','','555'];
let manageUnit = unitIds.filter(e => e).map(Number);
console.log(manageUnit); //[333, 444, 555]
如何剔除换行符?
arr = arr.filter(e=> e.replace(/(\r\n|\n|\r)/gm,""));
版权声明:本文为weixin_42960907原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。