我有一个字符串:
var str = "123, 124, 234,252";
我想在拆分后增加每个项目。增加1.所以我会:
var arr = [124, 125, 235, 253 ];
我怎么能在NodeJS中做到这一点?
答案 0 :(得分:103)
使用split
和map
功能:
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; });
今天我建议反对使用+
运算符将变量转换为数字。相反,我会使用更明确但更易读的Number
电话:
var str = "123, 124, 234,252";
var arr = str.split(",").map(function (val) {
return Number(val) + 1;
});
console.log(arr);
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);
我的旧答案仍然是正确的,所以我会把它留作记录,但现在没有必要使用它。