36

たとえば、整数を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;
4

18 に答える 18

5
var n = 12345;
var arr = ('' + n).split('').map(function(digit)  {return +digit;});

ただし、マップ機能は最近のブラウザーでのみサポートされています。

于 2013-10-04T13:21:48.227 に答える
0

まず、整数が文字列に変換され、次に配列に変換されます。map 関数を使用すると、個々の文字列は parseInt 関数を使用して数値に変換されます。最後に、その配列が結果として返されます。

const digitize = n => [...`${n}`].map(i => parseInt(i));
于 2019-07-26T09:11:49.053 に答える
0

提案された解決策はほとんどの場合うまくいきますが、負の数ではうまくいきません。

このような場合の解決策があります。

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]

于 2020-11-15T06:18:54.977 に答える