Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: array e record univoci

  1. #1

    array e record univoci

    ho cercato ma nn ho trovato nulla..

    se io ho un array con record tipo "uno" "due" "tre" "uno" "due" , quiandi con alcuni record che appaiono piu volte nell'array, come faccio a fare in modo di leggere quelli uguali una sola volta?

    quindi dall'avere: uno, due, tre, uno, due
    ad avere: uno, due, tre

    il tutto mi serve per una galleria multisezione, dove le immagini vengono divise per sezioni, come fossero in delle sottocartelle..
    fin'ora ho raggruppato tutti i nodi <sezione> in un array, ma ora mi servirebbe fare questo passaggio..

    graaazie

  2. #2

  3. #3

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    dovresti "travasare" i record in un altro array fatto apposta, e su questo verificare ogni volta che il record che stai inserendo non sia già presente, in caso contrario passare al successivo... non so se riesco, ma provo a buttar giù una funzioncina che lo faccia...

  5. #5
    esatto, ci stavo lavorando proprio ora..
    solo che nn riesco a farla quella cacchio di funzioncina..so ignorant!!!

    grazie mille and!

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    pensata e scritta al volo... la do funzionante per un 20%

    codice:
    var isolaRecords:Function = function(array:Array):Array {
    	var temp:String = "";
    	for(var index = 0; index < array.length; index++){
    		if(temp.indexOf(array[index]) < 0){
    			temp = (index != array.length-1) ? temp+array[index]+"|" : temp+array[index];
    		}
    	}
    	var returnedArray:Array = temp.split("|");
    	return returnedArray;
    }
    // usage:
    var arr:Array = new Array("uno", "due", "tre", "uno", "due");
    trace(arr.length); // 5
    var arr:Array = isolaRecords(arr);
    trace(arr.length); // 3

  7. #7
    tralasciando il fatto che nn c'ho capito na pippa di sto script!!!

    se lo testo mi da il non divertentissimo errore che dice che lo script sta causando un rallentamento e se non viene interrotto puo causare il blocco del sistema!!! VVoVe:

    in pratica tu metti il contenuto di "arr" in "isolaRecords", poi crei una var "temp" che dovrebbe contenere i record dell'array per fare il controllo ..

    però nn capisco molti pezzi dello script tipo...
    codice:
    if(temp.indexOf(array[index]) < 0){
    	temp = (index != array.length-1) ? temp+array[index]+"|" : temp+array[index];
    }
    
    ....
    
    var returnedArray:Array = temp.split("|");
    return returnedArray;

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da sha

    però nn capisco molti pezzi dello script tipo...
    se non funziona, è inutile che sto a spiegartelo aspetto di provarlo direttamente, poi ti faccio sapere


    [edit] ok... l'ho rimodificato direttamente sul messaggio... ora forse va

  9. #9
    io propongo una statua in bronzo per and!!!
    anzi guarda..apro un dominio vivaand80.com e ci uppo solo una statua a tua immagine e somiglianza!!!! me la faccio fare in 3d da un amico!!!

    funziona alla perfezioooone!
    ora deo solo implementarlo nel mio scriptino e vedere se tutto funge..al massimo ti rompo ancora i cocomeri!!!!

    grazie mille per l'ennesima volta!!

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per chiunque voglia approfondire...

    codice:
    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 = 0; index < array.length; index++){
    		// 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;
    }

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.