たとえば、整数を12345
のような配列に変換したい[1,2,3,4,5]
。
以下のコードを試しましたが、これを行うより良い方法はありますか?
var n = 12345;
var arr = n.toString().split('');
for (i = 0; i < arr.length; i++) arr[i] = +arr[i] | 0;
たとえば、整数を12345
のような配列に変換したい[1,2,3,4,5]
。
以下のコードを試しましたが、これを行うより良い方法はありますか?
var n = 12345;
var arr = n.toString().split('');
for (i = 0; i < arr.length; i++) arr[i] = +arr[i] | 0;
var n = 12345;
var arr = ('' + n).split('').map(function(digit) {return +digit;});
ただし、マップ機能は最近のブラウザーでのみサポートされています。
まず、整数が文字列に変換され、次に配列に変換されます。map 関数を使用すると、個々の文字列は parseInt 関数を使用して数値に変換されます。最後に、その配列が結果として返されます。
const digitize = n => [...`${n}`].map(i => parseInt(i));
提案された解決策はほとんどの場合うまくいきますが、負の数ではうまくいきません。
このような場合の解決策があります。
const intToArray = (int) => {
return String(int).match(/-?\d/g).map(Number)
}
console.log(intToArray(312)) // [3, 1, 2]
console.log(intToArray(-312)) // [-3, 1, 2]