77 votes

Comment séparer un entier en chiffres séparés dans un tableau en JavaScript ?

Voici mon code pour l'instant :

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

Mais lorsque j'exécute mon code, j'obtiens ceci : [9, 1, 2, 3, 4, 5, 6, 7, 8]

Si quelqu'un peut voir le problème ou trouver une meilleure solution, je l'apprécierais beaucoup!

105voto

Niet the Dark Absol Points 154811

Pourquoi ne pas simplement faire ça ?

 var n =  123456789;
var digits = (""+n).split("");

95voto

Nicolás Fantone Points 453

Qu'en est-il de:

 const n = 123456;
Array.from(n.toString()).map(Number);
// [1, 2, 3, 4, 5, 6]

56voto

samccone Points 3426
(123456789).toString(10).split("")

^^ cela retournera un tableau de chaînes

 (123456789).toString(10).split("").map(function(t){return parseInt(t)})

^^ cela retournera un tableau d'ints

27voto

user2521439 Points 820

Je me rends compte que cela a été demandé il y a plusieurs mois, mais j'ai un ajout à la réponse de samccone qui est plus succinct mais je n'ai pas le représentant à ajouter en commentaire!

À la place de:

 (123456789).toString(10).split("").map(function(t){return parseInt(t)})

Envisager:

 (123456789).toString(10).split("").map(Number)

21voto

Alexander Points 331

J'ai un peu modifié la réponse ci-dessus. Nous n'avons pas vraiment besoin d'appeler explicitement la méthode 'map', car elle est déjà intégrée dans 'Array.from' en tant que deuxième argument. Depuis MDN .

Array.from(arrayLike[, mapFn[, thisArg]])

 let num = 1234;
let arr = Array.from(String(num), Number);
console.log(arr); // [1, 2, 3, 4]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X