私は文字列を持っています:
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);
ECMAScript 2015では、コードをより簡潔にするために代わりに使用できるように、矢印関数が導入されました。
var str = "123, 124, 234,252";
var arr = str.split(",").map(val => 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の強力な解析機能のおかげで、驚くほど堅牢です。
文字列から数字以外の文字も削除するものが必要な場合(そして、追跡しやすく...そしてそれほどかわいくない):
_.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);
私の古い答えはまだ正しいので、記録のために残しておきますが、今日はそれを使用する必要はありません。