Eu tenho uma matriz unidimensional de strings em JavaScript que gostaria de transformar em uma lista separada por vírgula. Existe uma maneira simples no JavaScript de variedade de jardim (ou jQuery) para transformar isso em uma lista separada por vírgula? (Eu sei como percorrer a matriz e construir a cadeia de caracteres por concatenação, se esse for o único caminho.)
javascript
jquery
Caudill de ervas
fonte
fonte
var arr = ["Zero", "One", "Two"]; console.log(arr.toString());
que retornaZero,One,Two
Leia maisRespostas:
O método Array.prototype.join () :
fonte
Na verdade, a
toString()
implementação faz uma junção com vírgulas por padrão:Não sei se isso é obrigatório pela especificação JS, mas é isso que
a maioriapraticamente todos os navegadores parecem estar fazendo.fonte
arr + ''
toString()
ejoin(",")
é aproximadamente equivalente a partir de abr de 2018Ou (com mais eficiência):
O método toString de uma matriz quando chamado retorna exatamente o que você precisa - lista separada por vírgula.
fonte
Aqui está uma implementação que converte uma matriz bidimensional ou uma matriz de colunas em uma sequência CSV com escape apropriado. As funções não verificam se há entrada válida de seqüência / número ou contagem de colunas (verifique se sua matriz é válida para começar). As células podem conter vírgulas e aspas!
Aqui está um script para decodificar seqüências de caracteres CSV .
Aqui está o meu script para codificar seqüências de caracteres CSV :
fonte
Eu acho que isso deve fazer:
violino
Basicamente, tudo o que faz é verificar se a sequência contém uma vírgula ou aspas. Caso isso aconteça, dobra todas as aspas e coloca aspas nas extremidades. Em seguida, une cada uma das partes com uma vírgula.
fonte
Se você precisar usar "e" em vez de "," entre os dois últimos itens, poderá fazer isso:
fonte
Existem muitos métodos para converter uma matriz em lista separada por vírgula
1. Usando array # join
Do MDN
O código
Snippet
Mostrar snippet de código
2. Usando o array # toString
Do MDN
O código
Snippet
Mostrar snippet de código
3. Adicione [] + antes da matriz ou + [] após uma matriz
O [] + ou + [] irá convertê-lo em uma string
Prova
produzirá true
Mostrar snippet de código
Snippet
Mostrar snippet de código
Além disso
Mostrar snippet de código
fonte
Use o
Array.toString
método internoMDN em Array.toString ()
fonte
Normalmente, me pego precisando de algo que também ignore o valor se esse valor for
null
ouundefined
etc.Então, aqui está a solução que funciona para mim:
A maioria das soluções aqui retornaria
', apple'
se minha matriz se parecesse com a do meu segundo exemplo. Por isso prefiro esta solução.fonte
Gostei da solução em https://jsfiddle.net/rwone/qJUh2/ porque adiciona espaços após vírgulas:
Ou, como sugerido por @StackOverflaw nos comentários:
fonte
arr.join(', ')
:, que na verdade é mais rápida (de acordo com os comentários do @Sameer) e também mais segura (não mexe com vírgulas dentro dos valores da matriz, como seria o RegExp na sequência resultante). ;)O Papa Parse lida com vírgulas em valores e outros casos extremos.
( Bebê Parse para Node foi descontinuado - agora você pode usar o Papa Parse no navegador e no Node.)
Por exemplo. (nó)
1 ,, "a, b"
fonte
Tomando o código inicial:
A resposta inicial do uso da função de junção é ideal. Uma coisa a considerar seria o uso final da string.
Para usar em alguma exibição textual final:
Para usar em uma URL para passar vários valores de uma maneira (um pouco) RESTful:
Obviamente, tudo depende do uso final. Apenas mantenha a fonte de dados e use-a em mente e tudo ficará bem com o mundo.
fonte
Deseja terminar com um "e"?
Para essa situação, criei um módulo npm.
Tente arrford :
Uso
Instalar
consulte Mais informação
https://github.com/dawsonbotsford/arrford
Tente você mesmo
Link tônico
fonte
No Chrome 72 , é possível usar o Intl.ListFormat :
Observe que esse caminho está em um estágio muito anterior; portanto, a partir da data de publicação desta resposta, espere incompatibilidade com versões mais antigas do Chrome e de outros navegadores.
fonte
fonte
fonte
Essa solução também remove valores como
" "
:fonte