Eu tenho uma string separada por vírgula que quero converter em uma matriz, para que eu possa fazer um loop através dela.
Existe algo embutido para fazer isso?
Por exemplo, eu tenho essa string
var str = "January,February,March,April,May,June,July,August,September,October,November,December";
agora eu quero dividir isso pela vírgula e armazená-lo em uma matriz.
javascript
string
split
Blankman
fonte
fonte
string.split(',');
Respostas:
Referência MDN , principalmente útil para o comportamento possivelmente inesperado do
limit
parâmetro. (Dica:"a,b,c".split(",", 2)
sai para["a", "b"]
, não["a", "b,c"]
.)fonte
string
tem um pouco da riqueza do JavaString
.split
belo trabalho vontade se você tem certeza que tem elementosarray
, se você está esperando dados de um servidor / banco de dados que você vai ter problemas desde que''.split(',')
tem umlength === 1
IE:''.split(',') === ['']
Cuidado se você está buscando números inteiros, como 1,2,3,4,5. Se você pretende usar os elementos de sua matriz como números inteiros e não como cadeias após dividir a cadeia, considere convertê-los em tais.
adicionando um loop como este
retornará uma matriz contendo números inteiros, e não cadeias.
fonte
"001,002,003..."
). CompareparseInt('010')
comparseInt('010', 10)
.map
função pode ser usada para fazer a análise de números inteiros em uma linha:str.split(',').map(parseInt)
A divisão Hmm é perigosa no imho, pois uma string sempre pode conter vírgula, observe o seguinte:
Então, como você interpretaria isso? e qual você quer que seja o resultado? uma matriz com:
mesmo se você escapar da vírgula, terá um problema.
Resolvi rapidamente isso:
Sinta-se livre para usá-lo / editá-lo :)
fonte
O método split () é usado para dividir uma string em uma matriz de substrings e retorna a nova matriz.
fonte
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); }}); });
Observe que o seguinte:
irá alertar 1
fonte
Passe sua string separada por vírgula para esta função e ela retornará uma matriz; se não for encontrada uma string separada por vírgula, retornará nulo.
fonte
else { ResultArray = [CommaSepStr]; }
após o segundoif
Função de retorno
é aceitar string e objetos
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
fonte
var stringtext = "String, text, I, am"; var stringtextArray = (new Function("return [" + string text + "];")());
O resultado é: SyntaxError: Identificador inesperadoSei que essa pergunta foi respondida por um bom tempo, mas achei que minha contribuição seria benéfica para outras pessoas que pesquisam esse tópico ...
Aqui está uma função que converterá uma string em uma matriz, mesmo se houver apenas um item na lista (sem caractere separador):
Use-o assim:
Eu criei essa função porque
split
gera um erro se não houver caractere separador na string (apenas um item)fonte
'echo'.split(',')
retorna['echo']
e''.split(',')
retorna['']
. Você vai obter um erro se você chamarx.split(',')
quandox
não é uma string (incluindo quandox
é indefinido ou nulo ), porque não há nenhumasplit
função disponível para outros tipos.split
um objeto indefinido quando escrevi minha função listToArray. Obrigado por apontar isso ...Eu tive um problema semelhante, mas mais complexo, pois precisava transformar um csv em uma matriz de matrizes (cada linha é um elemento da matriz que por dentro tem uma matriz de itens divididos por vírgula).
A solução mais fácil (e mais segura, aposto) foi usar o PapaParse ( http://papaparse.com/ ), que possui uma opção "sem cabeçalho" que transforma o csv em uma matriz de arrays, além de detectar automaticamente o " , "como meu delimitador.
Além disso, ele está registrado no caramanchão, então eu só precisava:
e use-o no meu código da seguinte maneira:
Eu realmente gostei.
fonte
resultará:
e se você deseja converter o seguinte em:
isto:
usar:
fonte
boa solução para isso
fonte
Para matriz de cadeias de caracteres para cadeia separada por vírgula
fonte
você pode experimentar o seguinte trecho
fonte
Mais curto
Mostrar snippet de código
fonte