Подтвердить что ты не робот

Как разбить и изменить строку в NodeJS?

У меня есть строка:

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

Я хочу проанализировать каждый элемент после разделения и приращения 1. Итак, у меня будет:

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

Как я могу сделать это в NodeJS?

4b9b3361

Ответ 1

Используйте функцию 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; });

изменить 2015.07.29

Сегодня я бы посоветовал против использовать оператор + для передачи переменной в число. Вместо этого я пошел бы с более явным, но более читаемым вызовом Number:

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

Ответ 2

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

Ответ 3

Если вы используете 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);

Мой старый ответ по-прежнему верен, поэтому я оставлю его для записи, но сейчас его не нужно использовать.