Como posso converter uma string em uma matriz JavaScript?
Veja o código:
var string = "0,1";
var array = [string];
alert(array[0]);
Nesse caso, alert
apareceria um 0,1
. Quando seria uma matriz, surgiria um 0
e, quando alert(array[1]);
é chamado, deve aparecer o 1
.
Existe alguma chance de converter essa string em uma matriz JavaScript?
javascript
arrays
string
Scott
fonte
fonte
string[0] === '0'
na sua pergunta), na maioria dos casos você pode tratar uma string como uma matriz de caracteres e usar métodos de matriz nela.Respostas:
Para membros simples da matriz como esse, você pode usar
JSON.parse
.Isso fornece uma matriz de números.
Se você usar
.split()
, você terminará com uma matriz de seqüências de caracteres.Esteja ciente de que
JSON.parse
o limitará aos tipos de dados suportados. Se você precisar de valores comoundefined
funções, precisará usareval()
ou um analisador JavaScript.Se você deseja usar
.split()
, mas também deseja uma Matriz de Números, poderá usá-laArray.prototype.map
, embora seja necessário ajustá-la para o IE8 e diminuir ou simplesmente escrever um loop tradicional.fonte
JSON.parse();
não está disponível no IE6, IE7. Eu acho que, neste caso,String.split(',');
é mais fácil.var array = (new Function("return [" + string + "];"))()
. Usar.split()
é bom se o Numbers não for necessário; caso contrário, você precisará mapear o resultado.eval
). Se a matriz contiver valores da entrada do lado do cliente, isso será inseguro.Divida -o no
,
personagem;fonte
Isso é facilmente alcançado em ES6 ;
Você pode converter seqüências de caracteres em matrizes com Array.from ('string') ;
console.log
Qual é exatamente o que você está procurando.
fonte
JSON.parse
paraArray.from
como estou usandoES6
. ObrigadoRay Kim
Array.from("0, 1, 233")
vai voltar["0", ",", " ", "1", ",", " ", "2", "3", "3"]
, e se eu quiser[0, 1, 233]
?Set
de strings.Se a sequência já estiver no formato de lista, você poderá usar o JSON.parse:
fonte
Converta todos os tipos de strings
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
Resultado no console
Alguma prática não suporta seqüências de objetos
fonte
Para membros simples da matriz como esse, você pode usar JSON.parse.
Isso fornece uma matriz de números.
agora o valor da variável é como array.length = 1
Saída de valor
fonte
Você pode usar
split
Referência: http://www.w3schools.com/jsref/jsref_split.asp
"0,1".split(',')
fonte
Outra opção usando o ES6 é usar a sintaxe de propagação .
var convertedArray = [..."01234"];
fonte
use a função de mapa embutida com uma função anônima, da seguinte maneira:
[edit] aqui está como você o usaria
fonte
"123, 'a string with a , comma', 456"
. Você pode usar um regex mais complexo para lidar com esses casos corretamente (por exemplo, algo como sugerido aqui ).Mais exemplos de "Experimente você mesmo" abaixo.
Definição e uso O método split () é usado para dividir uma string em uma matriz de substrings e retorna a nova matriz.
Dica: Se uma sequência vazia ("") for usada como separador, a sequência será dividida entre cada caractere.
Nota: O método split () não altera a sequência original.
fonte
Você pode usar a sintaxe de propagação javascript para converter a string em uma matriz. Na solução abaixo, removo a vírgula e converto a sequência em uma matriz.
fonte
Como converter string separada por vírgulas em uma matriz em JavaScript?
Para obter mais exemplos de converter string em array em javascript usando as maneiras abaixo:
Split () com argumento de limite
confira este link ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
fonte
Eu removo os caracteres '[', ']' e divido com ','
fonte
Split (",") pode converter Strings com vírgulas em uma matriz String, aqui está o meu trecho de código.
fonte
// => declarando expressão regular
[a-zA-Z0-9] => corresponde a todos os az, AZ, 0-9
(): => agrupa todos os elementos correspondentes
$ 1 => string de substituição refere-se ao primeiro grupo de correspondências na regex.
g => bandeira global
fonte
Exemplo usando
Array.filter
:fonte
Por que você não substitui
,
vírgula esplit('')
a string como esta que resultará em['0', '1']
, além disso, você pode agrupar o resultado emparseInt()
para transformar o elemento em tipo inteiro.fonte