¿Cómo puedo convertir una cadena en una matriz de JavaScript?
Mira el código:
var string = "0,1";
var array = [string];
alert(array[0]);
En este caso, alert
aparecería una ventana emergente 0,1
. Cuando sería una matriz, aparecería una ventana emergente 0
, y cuando alert(array[1]);
se llame, debería aparecer la ventana emergente 1
.
¿Hay alguna posibilidad de convertir dicha cadena en una matriz de JavaScript?
javascript
arrays
string
Scott
fuente
fuente
string[0] === '0'
en su pregunta), en la mayoría de los casos puede tratar una cadena como una matriz de caracteres y usar métodos de matriz en ella.Respuestas:
Para miembros de matriz simples como ese, puede usar
JSON.parse
.Esto te da una matriz de números.
Si lo usa
.split()
, terminará con una matriz de cadenas.Solo tenga en cuenta que eso
JSON.parse
lo limitará a los tipos de datos compatibles. Si necesita valores comoundefined
o funciones, deberá usareval()
un analizador de JavaScript.Si desea usar
.split()
, pero también desea una Matriz de números, puede usarArray.prototype.map
, aunque necesitaría ajustarlo para IE8 y bajar o simplemente escribir un bucle tradicional.fuente
JSON.parse();
no está disponible en IE6, IE7. Creo que en este casoString.split(',');
es más fácil.var array = (new Function("return [" + string + "];"))()
. El uso.split()
está bien si no se necesitan números, de lo contrario, debería asignar el resultado.eval
). Si la matriz contiene valores de entrada del lado del cliente, esto será inseguro.Dividirlo en el
,
personaje;fuente
Esto se logra fácilmente en ES6 ;
Puede convertir cadenas en matrices con Array.from ('cadena') ;
will console.log
Que es exactamente lo que estás buscando.
fuente
JSON.parse
aArray.from
como lo estoy usandoES6
. GraciasRay Kim
Array.from("0, 1, 233")
volveremos["0", ",", " ", "1", ",", " ", "2", "3", "3"]
, ¿y si quiero[0, 1, 233]
?Set
de cadenas.Si la cadena ya está en formato de lista, puede usar el JSON.parse:
fuente
Convierte todo tipo de cadenas
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
Resultado en consola
Algunas prácticas no admiten cadenas de objetos
fuente
Para miembros de matriz simples como ese, puede usar JSON.parse.
Esto te da una matriz de números.
ahora tu valor variable es como array.length = 1
Salida de valor
fuente
Puedes usar
split
Referencia: http://www.w3schools.com/jsref/jsref_split.asp
"0,1".split(',')
fuente
Otra opción que usa ES6 es usar la sintaxis Spread .
var convertedArray = [..."01234"];
fuente
use la función de mapa incorporada con una función anónima, así:
[editar] así es como lo usarías
fuente
"123, 'a string with a , comma', 456"
. Podría usar una expresión regular más compleja para manejar estos casos correctamente (por ejemplo, algo como lo sugerido aquí ).Más ejemplos de "Pruébelo usted mismo" a continuación.
Definición y uso El método split () se utiliza para dividir una cadena en una matriz de subcadenas y devuelve la nueva matriz.
Sugerencia: Si se utiliza una cadena vacía ("") como separador, la cadena se divide entre cada carácter.
Nota: El método split () no cambia la cadena original.
fuente
Puede usar la Sintaxis de extensión de JavaScript para convertir cadenas en una matriz. En la solución a continuación, elimino la coma y luego convierto la cadena en una matriz.
fuente
¿Cómo convertir una cadena separada por comas en una matriz en JavaScript?
Para obtener más ejemplos de conversión de cadena a matriz en javascript, utilice las siguientes formas:
Split () con argumento de límite
mira este enlace ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
fuente
Elimino los caracteres '[', ']' y hago una división con ','
fuente
Split (",") puede convertir cadenas con comas en una matriz de cadenas, aquí está mi fragmento de código.
fuente
// => declarando expresión regular
[a-zA-Z0-9] => coincide con todos az, AZ, 0-9
(): => agrupar todos los elementos coincidentes
$ 1 => la cadena de reemplazo se refiere al primer grupo de coincidencia en la expresión regular.
g => bandera global
fuente
Ejemplo usando
Array.filter
:fuente
¿Por qué no reemplaza una
,
coma ysplit('')
una cadena como esta que resultará en['0', '1']
, además, podría ajustar el resultadoparseInt()
para transformar el elemento en un tipo entero?fuente