varios una ultimo separar separado quitar por numeros extraer eliminar dividir cortar convertir comas caracteres caracter cadena array javascript arrays digits

javascript - una - separar cadena jquery



¿Cómo se puede separar un entero en dígitos separados en una matriz en JavaScript? (11)

Este es mi código hasta ahora:

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

Pero cuando ejecuto mi código, obtengo esto: [9, 1, 2, 3, 4, 5, 6, 7, 8]

Si alguien puede ver el problema o encontrar una solución mejor, ¡lo agradecería mucho!


¿Por qué no solo hacer esto?

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


Aquí hay una alternativa a la respuesta de Nicolás Fantone . Se podría argumentar que es quizás un poco menos legible. El énfasis es que Array.from () puede tomar una función de mapa opcional como parámetro. De esta forma, se obtienen algunos aumentos de rendimiento ya que no se crea una matriz intermedia.

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


Han pasado más de 5 años para esta pregunta, pero siempre son bienvenidos las formas eficientes de codificación / scripting.

var n = 123456789; var arrayN = (`${n}`).split("").map(e => parseInt(e))


Me doy cuenta de que esto fue preguntado hace varios meses, pero tengo una adición a la respuesta de Samccone, que es más sucinta pero no tengo el representante para agregar como comentario.

En lugar de:

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

Considerar:

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


Modificó la respuesta anterior un poco. Realmente no tenemos que llamar al método ''mapa'' explícitamente, porque ya está incorporado en el ''Array.from'' como segundo argumento. A partir de MDN .

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

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


Movimiento:

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

encima

var j = k / 10;


Otro método aquí. Como el número en Javascript no se puede dividir de manera predeterminada, primero debe convertir el número en una cadena.

var n = 123; n.toString().split('''').map(Number);


Qué pasa:

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


const toIntArray = (n) => ([...n + ""].map(v => +v))


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

^^ esto devolverá una serie de cadenas

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

^^ esto devolverá una matriz de enteros


var num = 123456789; num = num.toString(); //''123456789'' var digits = num.split(""); //[ ''1'', ''2'', ''3'', ''4'', ''5'', ''6'', ''7'', ''8'', ''9'' ]