Ir para conteúdo

POWERED BY:

Arquivado

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

NATHANQG

Remover elementos duplicados de um array

Recommended Posts

Boa Tarde pessoal!

Estou tentando remover os elementos duplicados de um array, nesse array esses elementos podem vir duplicados, triplicados, ou até mesmo quadriplicados, gostaria de remover todos os itens repetidos e deixar apenas um. Bom, eu encontrei algumas funções por aí mas no meu caso não está "funcionando", ela chega a remover os duplicados mas sempre deixa dois elementos duplicados, pode ter 2, 3, 4, 5 ou mais elementos repetidos, sempre vão ficar dois, porém eu gostaria que somente um elemento de cada ficasse no Array.

 

No casso esse é o Array:

 

Array antes da operação: 1270,1270,1270,1270,1270,1270,1339,1339,1339,1339,1339,1226,1226,1226,1155,1155,1155,1345,1345,1345,1345,1345,1353,1353,1353,1353,1353,1246,1108,1256,1256,1256,1256,1256

 

Essa é a função que estou utilizando:

 

for (var d:int = 0; d<array.length-1 ; d++){
                               for (var e:int = d+1; e < array.length; e++){

                                       if (array[d] == array[e]){

                                               array.splice(e,1);
                                       }
                               }
                       }

 

 

Depois da operação o Array continua assim:

 

Array depois da operação: 1270,1270,1339,1339,1226,1226,1155,1155,1345,1345,1353,1353,1246,1108,1256,1256

 

Ele sempre deixa dois elementos iguais.

Vocês saberm como resolver isso?

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
var arr:Array =  [1, 1, 2, 2, 3, 2, 1, 1, 2];
for (var i:uint; i < arr.length; i++) {
var index:int;
while ((index = arr.indexOf(arr[i], i + 1)) != -1) {
	arr.splice(index, 1);
}
}
trace(arr);

Compartilhar este post


Link para o post
Compartilhar em outros sites

var arr:Array =  [1, 1, 2, 2, 3, 2, 1, 1, 2];
for (var i:uint; i < arr.length; i++) {
var index:int;
while ((index = arr.indexOf(arr[i], i + 1)) != -1) {
	arr.splice(index, 1);
}
}
trace(arr);

 

Não funfou aqui cara! =/

Usando essa função ele nem remove elemento nenhum.

Será que tem algo a ver com o tamanho de cada elemento do array?

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites
var arr:Array =  [1270,1270,1270,1270,1270,1270,1339,1339,1339,1339,1339,1226,1226,1226,1155,1155,1155,1345,1345,1345,1345,1345,1353,1353,1353,1353,1353,1246,1108,1256,1256,1256,1256,1256];
for (var i:uint; i < arr.length; i++) {
       var index:int;
       while ((index = arr.indexOf(arr[i], i + 1)) != -1) {
               arr.splice(index, 1);
       }
}
trace(arr);
// imprime 1270,1339,1226,1155,1345,1353,1246,1108,1256

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.