Tengo una matriz unidimensional de cadenas en JavaScript que me gustaría convertir en una lista separada por comas. ¿Hay una manera simple en JavaScript de variedad de jardín (o jQuery) para convertir eso en una lista separada por comas? (Sé cómo iterar a través de la matriz y construir la cadena yo mismo por concatenación si esa es la única forma).
javascript
jquery
Hierba caudill
fuente
fuente
var arr = ["Zero", "One", "Two"]; console.log(arr.toString());
que devuelveZero,One,Two
Leer másRespuestas:
El método Array.prototype.join () :
fuente
En realidad, la
toString()
implementación se une con comas por defecto:No sé si esto es obligatorio por la especificación JS pero esto es lo que
másprácticamente todos los navegadores parecen estar funcionando.fuente
arr + ''
toString()
yjoin(",")
es aproximadamente equivalente a partir de abril de 2018O (más eficientemente):
El método toString de una matriz cuando se llama devuelve exactamente lo que necesita: una lista separada por comas.
fuente
Aquí hay una implementación que convierte una matriz bidimensional o una matriz de columnas en una cadena CSV con escape adecuado. Las funciones no comprueban la entrada de cadenas / números válidos ni los recuentos de columnas (para empezar, asegúrese de que su matriz sea válida). ¡Las celdas pueden contener comas y comillas!
Aquí hay un script para decodificar cadenas CSV .
Aquí está mi script para codificar cadenas CSV :
fuente
Creo que esto debería hacerlo:
violín
Básicamente, todo lo que hace es verificar si la cadena contiene una coma o una cita. Si lo hace, duplica todas las comillas y pone comillas en los extremos. Luego une cada una de las partes con una coma.
fuente
Si necesita usar "y" en lugar de "," entre los dos últimos elementos, puede hacer esto:
fuente
Hay muchos métodos para convertir una matriz en una lista separada por comas
1. Usando array # join
De MDN
El código
Retazo
Mostrar fragmento de código
2. Usando array # toString
De MDN
El código
Retazo
Mostrar fragmento de código
3. Agregue [] + antes de la matriz o + [] después de una matriz
El [] + o + [] convertirá en una cadena
Prueba
dará salida verdadero
Mostrar fragmento de código
Retazo
Mostrar fragmento de código
también
Mostrar fragmento de código
fuente
Use el
Array.toString
método incorporadoMDN en Array.toString ()
fuente
Por lo general, necesito algo que también omita el valor si ese valor es
null
oundefined
, etc.Así que aquí está la solución que funciona para mí:
La mayoría de las soluciones aquí regresarían
', apple'
si mi matriz se pareciera a la de mi segundo ejemplo. Por eso prefiero esta solución.fuente
Me gustó la solución en https://jsfiddle.net/rwone/qJUh2/ porque agrega espacios después de las comas:
O, como lo sugiere @StackOverflaw en los comentarios:
fuente
arr.join(', ')
que en realidad es más rápido (según los comentarios de @Sameer) y también más seguro (no se mete con comas dentro de los valores de la matriz como lo haría RegExp en la cadena resultante). ;)Papa Parse maneja comas en valores y otros casos extremos.
( Baby Parse for Node ha quedado en desuso; ahora puede usar Papa Parse en el navegador y en Node).
P.ej. (nodo)
1 ,, "a, b"
fuente
Tomando el código inicial:
La respuesta inicial de usar la función de combinación es ideal. Una cosa a considerar sería el uso final de la cadena.
Para usar en alguna pantalla de texto final:
Para usar en una URL para pasar múltiples valores de una manera (algo) RESTful:
Por supuesto, todo depende del uso final. Solo tenga en cuenta la fuente y el uso de datos y todo estará bien con el mundo.
fuente
¿Quieres terminar con un "y"?
Para esta situación, creé un módulo npm.
Prueba arrford :
Uso
Instalar en pc
Lee mas
https://github.com/dawsonbotsford/arrford
Inténtalo tú mismo
Enlace tónico
fuente
A partir de Chrome 72 , es posible usar Intl.ListFormat :
Tenga en cuenta que esta forma está en su etapa más temprana, por lo que a partir de la fecha de publicación de esta respuesta, espere incompatibilidad con versiones anteriores de Chrome y otros navegadores.
fuente
fuente
fuente
Esta solución también elimina valores como
" "
:fuente