Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    53

    eliminazione doppioni in array

    Ciao,

    dopo un paio d'ore spese inutilmente su for ed if sono a chiedere aiuto su di un problema apparentemente banale ma che invece non riesco a risolvere.

    Ho un array con una serie di dati es: a,a,b,a,c,b,b,c,c,a
    Come posso eliminare i doppioni nell'array ottenendo a,b,c?

    Chiaramente non conosco a priori la lunghezza dell'array, nè il numero degli elementi univoci.

    Ho pensato di prendere la prima lettera dell'array e confrontarla con le altre, nel caso di uguaglianza eliminarle. Poi proseguire con la seconda ... etc etc
    Il problema di questo metodo che non posso usare for perchè l'array si accorcia durante il ciclo stesso.

    Suggerimenti?

    Grazie in anticipo e buon weekend

  2. #2
    vedi questo

    Codice PHP:
    var isolaRecords:Function = function(array:Array):Array {
        
    // creo una stringa che andrò a riempire attraverso un ciclo dei valori dell'array,
        // divisi da un elemento forfettario, di basso uso, io ho scelto il "|"
        
    var temp:String "";
        
    // avvio un ciclo che legge tutti gli elementi dell'array, uno per uno
        
    for(var index 0index < array.lengthindex++){
            
    // se il valore attuale non è già presente nella stringa "temp"
            
    if(temp.indexOf(array[index]) < 0){
                
    // allora lo inserisco come ultimo elemento
                // utilizzo la sintassi abbreviata dell'if per dire al parser che
                // se si tratta dell'ultimo valore del ciclo, non deve aggiungermi il divisore "|"
                // altrimenti lo deve fare (la sintassi abbreviata dell'if si trova 
                // nella guida in linea, tra gli operatori
                
    temp = (index != array.length-1) ? temp+array[index]+"|" temp+array[index];
            }
        }
        
    // creo un array grazie alla funzione split che separa gli elementi di una stringa in base 
        // ad un divisore e li ripropone sottoforma di array
        
    var returnedArray:Array = temp.split("|");
        
    // faccio restituire l'array alla funzione
        
    return returnedArray;
    }
    // usage:
    var arr:Array = new Array("uno""due""tre""uno""due");
    trace(arr.length); // 5
    trace("prima la funzione "+arr);
    var 
    arr:Array = isolaRecords(arr);
    trace(arr.length); // 3
    trace("dopo la funzione "+arr); 
    dovrebbe eliminarti i doppioni
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    53
    Ti ringrazio è esattamente quello che cercavo...

    inoltre non mi ero mai imbattuto nell'uso di split come costruttore di array... Buono a sapersi !!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.