54

私は文字列を持っています:

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

分割して1をインクリメントした後、各アイテムを解析したいので、次のようになります。

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

NodeJSでそれを行うにはどうすればよいですか?

4

3 に答える 3

119

使用splitmap機能:

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);

2017.03.09を編集

ECMAScript 2015では、コードをより簡潔にするために代わりに使用できるように、矢印関数が導入されました。

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

于 2013-02-28T11:34:48.117 に答える
4
var str = "123, 124, 234,252";
var arr = str.split(",");
for(var i=0;i<arr.length;i++) {
    arr[i] = ++arr[i];
}
于 2013-02-28T11:23:10.373 に答える
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を利用します。これが私が今お勧めする解決策です:

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

私の古い答えはまだ正しいので、記録のために残しておきますが、今日はそれを使用する必要はありません。

于 2015-10-07T05:42:04.007 に答える