如何在NodeJS中拆分和修改字符串?

时间:2013-02-28 11:20:37

标签: javascript node.js

我有一个字符串:

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

我想在拆分后增加每个项目。增加1.所以我会:

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

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

3 个答案:

答案 0 :(得分:103)

使用splitmap功能:

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

注意+val - 将字符串转换为数字。

或更短:

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

编辑2015.07.29

今天我建议反对使用+运算符将变量转换为数字。相反,我会使用更明确但更易读的Number电话:

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

编辑2017.03.09

ECMAScript 2015引入了箭头功能,因此可以使用它来使代码更简洁:

var str = "123, 124, 234,252";
var arr = str.split(",").map(val => Number(val) + 1);
console.log(arr);

答案 1 :(得分:3)

var str = "123, 124, 234,252";
var arr = str.split(",");
for(var i=0;i<arr.length;i++) {
    arr[i] = ++arr[i];
}

答案 2 :(得分:1)

如果你正在使用lodash并且心情太过可爱,那就是自己很好的单行:

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

由于lodash强大的解析功能,它令人惊讶地强大。

如果你想要一个也可以清除字符串中的非数字字符(并且更容易理解......并且不那么可爱):

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

2017年编辑

我不再推荐我以前的解决方案了。除了过度使用并且在没有第三方库的情况下已经很容易,它使用了_.chain,has a variety of issues。这是我现在推荐的解决方案:

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

我的旧答案仍然是正确的,所以我会把它留作记录,但现在没有必要使用它。