У меня есть строка:
var str = "123, 124, 234,252";
Я хочу проанализировать каждый элемент после разделения и приращения 1. Итак, у меня будет:
var arr = [124, 125, 235, 253 ];
Как я могу сделать это в NodeJS?
У меня есть строка:
var str = "123, 124, 234,252";
Я хочу проанализировать каждый элемент после разделения и приращения 1. Итак, у меня будет:
var arr = [124, 125, 235, 253 ];
Как я могу сделать это в NodeJS?
Используйте функцию 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);
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.
Если вы хотите тот, который будет также очищать несимметричные символы из строки (и легче следовать... и не совсем так cutey):
_.chain('123, 124, 234,252, n301')
.replace(/[^\d,]/g, '')
.words()
.map(_.partial(_.add, 1))
.value();
2017:
Я больше не рекомендую свое предыдущее решение. Помимо переполнения и уже легко обойтись без сторонней библиотеки, он использует _.chain, который имеет множество проблем. Здесь решение, которое я бы рекомендовал:
const str = '123, 124, 234,252';
const arr = str.split(',').map(n => parseInt(n, 10) + 1);
Мой старый ответ по-прежнему верен, поэтому я оставлю его для записи, но сейчас его не нужно использовать.