如何拆分和修改NodeJS中的string?

我有一个string:

var str = "123, 124, 234,252"; 

我想parsing每个项目后,分裂和增量1.所以我会有:

 var arr = [124, 125, 235, 253 ]; 

我怎么能在NodeJS中做到这一点?

使用splitmapfunction:

 var str = "123, 124, 234,252"; var arr = str.split(","); arr = arr.map(function (val) { return +val + 1; }); 

通知+val – string被转换为数字。

或更短:

 var str = "123, 124, 234,252"; var arr = str.split(",").map(function (val) { return +val + 1; }); 

编辑2015.07.29

今天,我build议不要使用+运算符将variables转换为数字。 相反,我会用更明确,但更可读的Number呼叫:

 var str = "123, 124, 234,252"; var arr = str.split(",").map(function (val) { return Number(val) + 1; }); console.log(arr); 
 var str = "123, 124, 234,252"; var arr = str.split(","); for(var i=0;i<arr.length;i++) { arr[i] = ++arr[i]; } 

如果你正在使用lodash,并且想要一个太可爱的自己的好套路:

 _.map(_.words('123, 124, 234,252'), _.add.bind(1, 1)); 

由于lodash强大的分析function,这是令人惊讶的稳健。

如果你想要一个也可以清除string中的非数字字符(并且更容易遵循…并且不那么可爱):

 _.chain('123, 124, 234,252, n301') .replace(/[^\d,]/g, '') .words() .map(_.partial(_.add, 1)) .value(); 

2017编辑

我不再推荐我以前的解决scheme。 除了矫枉过正之外,在没有第三方库的情况下也很容易做到,它利用了_.chain,它有很多问题 。 以下是我现在推荐的解决scheme:

 const str = '123, 124, 234,252'; const arr = str.split(',').map(n => parseInt(n, 10) + 1); 

我原来的答案仍然是正确的,所以我会留下来logging,但现在没有必要使用它。