Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GuttoSP

Método Split - JavaScript

Recommended Posts

O método Split separa uma string utilizando como critério um delimitador fornecido pelo usuário:

 

Sintaxe:

 

string.split('delimitador',[limite]);

 

Onde string é a string a ser dividida, delimitador é o caractere utilizado como critério para divisão e limite o máximo de divisões. Como pode-se notar, limite é opcional, assim sendo, podemos omiti-lo:

 

string.split('delimitador');

 

O valor retornado é um array. Por exemplo, se quisermos dividir uma string, e guardar em uma variável do tipo array, fazemos da seguinte forma:

 

frutas = "Maçã|Uva|Amora";
novoArray = frutas.split('|');

alert(novoArray[0]); // retornará "Maçã"
alert(novoArray[1]); // retornará "Uva"
alert(novoArray[2]); // retornará "Amora"
alert(novoArray[3]); // retornará "undefined"

O último alert, alert(novoArray[3]);, retorna undefined pois excedeu o número de elementos retornados, já que a variável fruta era composta por 3 elementos.

 

O exemplo abaixo demonstra como utilizar o método split fornecendo o argumento limite:

 

- limite deve ser um número inteiro positivo;

- Frações serão ignoradas (arredondadas para baixo), por exemplo novoArray = frutas.split('|',5.7); será avaliado como novoArray = frutas.split('|',5);

- Se o valor de limite for 0, não haverá a divisão.

- Se for negativo, como novoArray = frutas.split('|',-5);, será ignorado e avaliado como novoArray = frutas.split('|');.

 

frutas = "Maçã|Uva|Amora|Pêssego|Ameixa|Acerola|Laranja|Morango";
novoArray = frutas.split('|',5);

alert(novoArray[0]); // retornará "Maçã"
alert(novoArray[1]); // retornará "Uva"
alert(novoArray[2]); // retornará "Amora"
alert(novoArray[3]); // retornará "Pêssego"
alert(novoArray[4]); // retornará "Ameixa"
alert(novoArray[5]); // retornará "undefined"
alert(novoArray[6]); // retornará "undefined"
alert(novoArray[7]); // retornará "undefined"

Os primeiros 5 alertas exibem os valores correspondentes às frutas, na mesma ordem da variável frutas. Os 3 últimos alertas exibem undefined, pois o array foi finalizado na 5ª posição.

 

O método split também pode ser usado para separar caracteres de uma palavra, basta não informar o delimitador:

 

variavel = "internacional";
caractere = variavel.split('');

alert(caractere[0]); // retornará "i" 
alert(caracterel[1]); // retornará "n"
alert(caractere[2]); // retornará "t"
alert(caractere[3]); // retornará "e"

Aplicação Prática:

 

Divisão de um email para ter em outra variável apenas o nome de usuário ou o provedor do email:

 

email = "fulano@msn.com";
separa = email.split('@');
alert(separa[0]); // retornará "fulano"
alert(separa[1]); // retornará "msn.com"

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se eu tiver uma string da seguinte forma

 

 

string = 0,0,0,0,0;1,1,1,1,1;2,2,2,2,2

 

e quiser dividir da seguinte forma

 

array[0][0] = 0

array[1][0] = 0

array[2][0] = 0

array[3][0] = 0

array[4][0] = 0

 

 

array[0][1] = 1

array[1][1] = 1

array[2][1] = 1

array[3][1] = 1

array[4][1] = 1

 

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se resolve. Como essa sequência de números deve ser aleatória, você vai ter que fazer algumas adaptações. Caso seja sempre uma quantia fixa de repetição dos números (nesse exemplo existem 6 sequências de números diferentes), da forma atual resolve.

 

<script>
	window.onload = function() {
		str = "0,0,0,0,0;1,1,1,1,1;2,2,2,2,2;3,3,3,3,3;4,4,4,4,4;5,5,5,5,5";
		var arrayPrincipal = str.split(';');
		var content = '';
		var array = new Array(new Array(4), new Array(4), new Array(4), new Array(4), new Array(4), new Array(4));
		for (i = 0; i < arrayPrincipal.length; i++) {
			subArray = arrayPrincipal[i].split(',');			 
			for (t = 0; t < subArray.length; t++) {
				array[t][i] = subArray[t];
				content += 'array['+t+']['+i+'] = '+array[t][i]+'\n';				
			}
		}
		alert(content);
	}
	
	/*
	Saída do script
	array[0][0] = 0
	array[1][0] = 0
	array[2][0] = 0
	array[3][0] = 0
	array[4][0] = 0
	
	
	array[0][1] = 1
	array[1][1] = 1
	array[2][1] = 1
	array[3][1] = 1
	array[4][1] = 1
	*/
</script>

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom.... Obrigado cara....

 

 

Não preciso de muita adaptações não.... Você entendeu perfeitamente oq eu queria fazer

 

Eu realmente não tava visualizando na hora de fazer essa parte

arrayProd[t][i] = arraySecundaria[t];

Muito obrigado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, vocês postaram bastante coisa boa, mas prescisamos falar tambem de REGEXP.

 

Exemplo bom é o (OR)=| funciona assim:

{ele pode dividir a string por a ou b(minusculas)}

var t = "TEXTOaTEXTObTEXTO".split(/(a|b)/);
alert(t);

Nesse exemplo podem ser maiusculas ou minusculas pois usa-se o "I"

var t = "TEXTOaTEXTObTEXTOAtextoBtexto".split(/(a|b)/gi);
alert(t);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.