NATHANQG 0 Denunciar post Postado Fevereiro 7, 2011 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
brunobispo 20 Denunciar post Postado Fevereiro 7, 2011 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
NATHANQG 0 Denunciar post Postado Fevereiro 7, 2011 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
brunobispo 20 Denunciar post Postado Fevereiro 7, 2011 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