如何拆分和修改NodeJS中的string?
我有一个string:
var str = "123, 124, 234,252";
我想parsing每个项目后,分裂和增量1.所以我会有:
var arr = [124, 125, 235, 253 ];
我怎么能在NodeJS中做到这一点?
使用split
和map
function:
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,但现在没有必要使用它。