Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18

Discussione: Controllo due array

  1. #11
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    709
    Mmm... in questo caso si potrebbe provare ad utilizzare la variabile di loop del secondo ciclo di for. In sostanza bisognerebbe sostiturire:

    arr3.splice(elem1);

    con

    arr3.splice(i);

    Mi sorge però un dubbio: quando si elimina un elemento da un'array rimane un "buco vuoto" o l'intero array viene accorciato? Ad esempio se dall'array

    arr3 {a,b,c,d,e} --> lunghezza=5

    tolgo l'elemento "b", qual'è il risultato?

    arr3 {a, ,c,d,e} --> lunghezza=5

    oppure

    arr3 {a,c,d,e} --> lunghezza=4

    nel secondo caso ci si presenterebbe un problema abbastanza rognoso!

    Secan

  2. #12
    l'ho gia provato, nulla da fare lo stesso!

  3. #13
    scusa ma splice non aggiunge???

  4. #14
    Allora:
    con qualche modifichina, abbiamo parzialmente risolto, nel senso che lascia il buco, però elimina l'elemento presente in entrambi gli array (scusa ma ti posto con i nomi degli array che uso io):
    var risultato=new Array(comitati.length);
    for (var j=0; j<=comitati.length-1; j++) {
    risultato[j]=comitati[j];
    }
    for (var i=0; i<=comitati.length; i++) {
    var elem1=comitati[i];
    for (var d=0; d<=comitati_presenti.length-1; d++) {
    var elem2=comitati_presenti[d];
    if (elem1==elem2) {
    risultato[i]=risultato.splice(i);
    }
    }
    }


  5. #15
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    scusate, ci sono problemi facendo così?
    codice:
    <script language="javascript" type="text/javascript">
    arr1=['pippo','pluto','paperino','topolino','minni','orazio','clarabella'];
    arr2=['pippo','paperino','quiquoqua','amelia','orazio','gastone','paperoga'];
    arr3=new Array();
    
    for(var i=0;i<arr1.length;i++){
    	for(var k=0;k<arr2.length;k++){
    		if(arr1[i]==arr2[k]){
    			arr3[arr3.length]=arr1[i]; // aggiunge in arr3
    			arr1.splice(i,1); // toglie da arr1
    		}
    	}
    }
    
    // output
    
    document.write('contenuto arr3:
    ')
    for(var i=0;i<arr3.length;i++){
    	document.write(arr3[i]+'
    ')
    }
    document.write('
    
    elementi rimasti in arr1:
    ')
    for(var i=0;i<arr1.length;i++){
    	document.write(arr1[i]+'
    ')
    }
    </script>

  6. #16
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    709
    Che io sappia, splice() può essere usato sia per aggiungere che per rimuovere uno o più elementi. Però riguardando la sintassi su www.devguru.com mi sa che lo script va corretto in questo modo:
    codice:
    arr3.splice(i,1);
    il problema è che loutput di tale comando sarà un array contenete tutti i valori eliminati (ossia l'esatto contrartio di ciò che ti serve). Invece, usando:
    codice:
    arr3.splice(1,1,"null");
    dovresti ottenere la sostituzione di tutti gli elementi "doppi" di arr3 (intendo quelli che compaiono anche in arr2) con il valore "null" ... magari potresti sfruttare questa cosa per un ulteriore controllo su arr3

    Secan

  7. #17
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    709
    Ooops, chiedo scusa, ma ho qualche problemino di connessione e le mie risposte arrivano con un ritardo pazzesco (per qualche assurdo motivo continuo ad essere reindirizzato alla schermata di log-in del forum).

    @Xinod
    Grazie per l'aiuto

    Secan

  8. #18
    emmmmm
    Non saprei come dire..... è perfetto!!!

    Vabbè grazie a tutti, io tolgo il disturbo!

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.