jQuery如何过滤数组 移除仅含单个逗号及多余空格的无效元素
问题说明
现有数组定义如下:
let array = ['john,1','mars,2','marry,3',' , '];
需要完成两个处理目标:
- 移除元素内的多余空格
- 删除仅包含单个逗号、无其他有效文本的数组元素
预期输出结果:
let array = ['john,1','mars,2','marry,3']
之前尝试的写法会错误删除数组内的所有逗号,无法得到正确结果。
实现代码
按「先清理空格、再过滤无效值」的顺序处理即可,注意正则只匹配空白字符,不要把逗号纳入替换范围:
const array = ['john,1','mars,2','marry,3',' , ']; const res = array // 移除元素内所有空白字符,包括首尾空格、符号前后的多余空格 .map(item => item.replace(/\s/g, '')) // 过滤掉空内容、仅为单个逗号的无效项 .filter(item => item.length > 0 && item !== ','); console.log(res) // ['john,1','mars,2','marry,3']
逻辑说明
- 替换空格用的正则
/\s/g只会匹配所有空白类字符,不会改动字母、数字、逗号这类有效内容,从根源上避免误删逗号的问题 - 过滤环节先判断清理空格后的元素非空,再排除内容刚好是单个逗号的项,就能把目标无效元素剔除干净
- 如果后续遇到类似
' lily , 4 '这种逗号前后带空格的有效元素,这段代码也能正常处理,输出'lily,4'符合要求。
内容的提问来源于stack exchange,提问作者CodingLover
相关产品推荐
相关产品推荐

