用 reduce 高阶函数组装查询表单分隔字符数据
查询表单,一次输入多个参数,一般是从网站或者 excel 中复制,要求前端用空格、逗号或者回车切割参数,传给后端。
这个需求也很常见,之前是先用 split 分隔成数组,再用 map 遍历去掉首尾空格,最后再用 filter 来过滤下空值,但是这样需要遍历两次,如果想只用一个 map 实现,那还得额外定义个变量来储存数据。
其实像这种组装数据直接用 reduce 就能完美解决,一般有的后端要求用户没填的参数就不传,不需要传个空字符串或者空数组这种,那我们 reduce 的初始值直接给成 undefined 就不会传给后端了,不过注意 push 的时候就要额外判断下了,否则会报错。
用回车、中英文逗号或空格分隔字符正则:/\n+|,|,|\s+/g
利用 reduce 过滤组装数据 demo:
复制代码
项目中使用完整示例代码:
复制代码
版权声明: 本文为 InfoQ 作者【咖啡教室】的原创文章。
原文链接:【http://xie.infoq.cn/article/7e95722f3ec65faa350d28187】。文章转载请联系作者。
评论