记录使用loadsh的踩的坑

开发nodejs后端,基本都要使用到loadsh这个module,loadsh是一个强大的工具包,里面提供了大量的关于Array,String操作的方法,
对于我们的开发提供了很大的便利,但是如果对于它提供的方法不了解的话,可能就会产生一些不必要的麻烦

trimStart

查看中文官网的介绍,我们可以看到如下的介绍:

trimStart-1

该方法是用来移除字符串前面的指定的空格字符,可以看到第二个参数是一个string类型。这里请重点关注一下字符
接下来我们就可以在工作中使用该方法了,然后我写了一个如下的代码,就悲剧了。

1
2
3
4
const _ = require('loadsh');
let no = '2019001';
let number = _.trimStart(no,'2019');
number = +number++;

如上的代码是一个用来生成order编码的代码,获取一个最新的编码,去掉了年份信息,对序号进行加1的操作,期望得到number为2,实际得到number为1。

这里的关键是trimStart方法是对字符进行处理,不是按照字符串进行处理,也就是说,我们传入的2019会被拆成2,0,1,9四个字符进行处理,这样处理完毕的
number就是一个空字符串,而不是期望获得的001

这里因为我们知道序号就是最后三位,所以我们可以使用slice方法直接获得最后三位字符。