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

How to split and modify a string in NodeJS?

本文关键字:修改 字符串 拆分 NodeJS      更新时间:2023-09-26

我有一个字符串:

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

我想解析拆分后的每个项并增加1。写入:

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

我如何在NodeJS中做到这一点?

使用splitmap函数:

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

今天我建议反对使用+操作符将变量转换为数字。相反,我会使用更显式但也更易读的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);

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强大的解析能力,它非常健壮。

如果你想要一个也将清除非数字字符的字符串(并且更容易遵循…而且不太做作):

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

:

我不再推荐我以前的解决方案。除了过度使用并且无需第三方库就可以轻松完成之外,它还使用了_。连锁店,它有各种各样的问题。下面是我现在要推荐的解决方案:

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

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