Как разделить целое число на отдельные цифры в массиве в JavaScript? - PullRequest
44 голосов
/ 28 марта 2012

Это мой код:

var n = 123456789;
var d = n.toString().length;
var digits = [];
var squaredDigits = [];
for (i = d; i >= 1; i--) {
    var j = k / 10;
    var r = (n % k / j) - 0.5;
    var k = Math.pow(10, i);
    var result = r.toFixed(); 
    digits.push(result);
}

console.log(digits);

Но когда я запускаю свой код, я получаю это: [9, 1, 2, 3, 4, 5, 6, 7, 8]

Если кто-то может увидеть проблему или найти лучшее решение, ябыл бы очень признателен!

Ответы [ 17 ]

0 голосов
/ 07 марта 2019

В итоге я решил:

const n = 123456789;
let toIntArray = (n) => ([...n + ""].map(Number));
console.log(toIntArray(n));
0 голосов
/ 20 апреля 2019

Это очень просто, сначала преобразуйте число в строку, используя метод toString () в JavaScript, а затем используйте метод split () , чтобы преобразовать строку в массив отдельных символов.

Например, число: num , затем

const numberDigits = num.toString().split('');
0 голосов
/ 05 января 2019

const toIntArray = (n) => ([...n + ""].map(v => +v))
0 голосов
/ 17 августа 2018

Другой способ здесь. Поскольку число в Javascript по умолчанию не разделяется, вам нужно сначала преобразовать число в строку.

var n = 123;
n.toString().split('').map(Number);
0 голосов
/ 28 марта 2012

Ход:

var k = Math.pow(10, i);

выше

var j = k / 10;
0 голосов
/ 23 мая 2017
var num = 123456789;
num = num.toString(); //'123456789'
var digits = num.split(""); //[ '1', '2', '3', '4', '5', '6', '7', '8', '9' ]
0 голосов
/ 06 марта 2018

На этот вопрос уже более 5 лет, но он всегда приветствует эффективные способы кодирования / написания сценариев.

var n = 123456789;
var arrayN = (`${n}`).split("").map(e => parseInt(e))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...