Tengo una cadena separada por comas que quiero convertir en una matriz, para poder recorrerla.
¿Hay algo incorporado para hacer esto?
Por ejemplo, tengo esta cadena
var str = "January,February,March,April,May,June,July,August,September,October,November,December";
ahora quiero dividir esto por la coma, y luego almacenarlo en una matriz.
javascript
string
split
Blankman
fuente
fuente
string.split(',');
Respuestas:
Referencia de MDN , principalmente útil para el posible comportamiento inesperado del
limit
parámetro. (Sugerencia:"a,b,c".split(",", 2)
sale["a", "b"]
, no["a", "b,c"]
.)fuente
string
tiene la riqueza de JavaString
.split
bien funcionará bien si está seguro de que tiene elementosarray
, si espera datos de un servidor / base de datos, se encontrará con problemas ya que''.split(',')
tiene unlength === 1
IE:''.split(',') === ['']
Tenga cuidado si apunta a números enteros, como 1,2,3,4,5. Si tiene la intención de usar los elementos de su matriz como enteros y no como cadenas después de dividir la cadena, considere convertirlos en tales.
agregando un bucle como este
devolverá una matriz que contiene enteros y no cadenas.
fuente
"001,002,003..."
). CompararparseInt('010')
conparseInt('010', 10)
.map
función se puede usar para realizar el análisis de enteros en una línea:str.split(',').map(parseInt)
Hmm split es peligroso en mi humilde opinión, ya que una cadena siempre puede contener una coma, observe lo siguiente:
Entonces, ¿cómo interpelarías eso? y que quieres que sea el resultado? una matriz con:
incluso si escapas de la coma tendrías un problema.
Rápidamente tocó esto juntos:
Siéntase libre de usarlo / editarlo :)
fuente
El método split () se usa para dividir una cadena en una matriz de subcadenas y devuelve la nueva matriz.
fuente
var sampleTags = ['[email protected]']; console.log(sampleTags); $("#order_id").on("change", function() { var order_id = document.getElementById('order_id').value; $.ajax({url: "model/getUserMailIds.php",data:{order_id:order_id},type:'POST', success: function(result){ alert(result); var sampleTags = result.split(',');; console.log(sampleTags); }}); });
Tenga en cuenta que lo siguiente:
alertará 1
fuente
Pase su cadena separada por comas en esta función y devolverá una matriz, y si no se encuentra una cadena separada por comas, devolverá nulo.
fuente
else { ResultArray = [CommaSepStr]; }
después del segundoif
Función de retorno
acepta cadenas y objetos
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
fuente
var stringtext = "String, text, I, am"; var stringtextArray = (new Function("return [" + string text + "];")());
el resultado es: SyntaxError: Identificador inesperadoSé que esta pregunta ha sido respondida durante bastante tiempo, pero pensé que mi contribución sería beneficiosa para otras personas que investigan este tema ...
Aquí hay una función que convertirá una cadena en una matriz, incluso si solo hay un elemento en la lista (sin carácter separador):
Úselo así:
Creé esta función porque
split
arroja un error si no hay un carácter separador en la cadena (solo un elemento)fuente
'echo'.split(',')
devuelve['echo']
y''.split(',')
devuelve['']
. Usted va a obtener un error si se llamax.split(',')
cuandox
no es una cadena (incluso cuandox
está sin definir o nula ), porque no hay unasplit
función disponible para otros tipos.split
un objeto indefinido cuando escribí mi función listToArray. Gracias por señalar eso ...Tuve un problema similar, pero más complejo ya que necesitaba transformar un csv en una matriz de matrices (cada línea es un elemento de matriz que en su interior tiene una matriz de elementos divididos por comas).
La solución más fácil (y más segura, apuesto) fue usar PapaParse ( http://papaparse.com/ ) que tiene una opción "sin encabezado" que transforma el csv en una matriz de matrices, además, detecta automáticamente el " "como mi delimitador.
Además, está registrado en Bower, por lo que solo tuve que:
y luego usarlo en mi código de la siguiente manera:
Realmente me gustó.
fuente
resultará:
y si quieres convertir lo siguiente a:
esta:
utilizar:
fuente
buena solución para eso
fuente
Para una matriz de cadenas a cadenas separadas por comas
fuente
puedes probar el siguiente fragmento
fuente
Más corto
Mostrar fragmento de código
fuente