Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    trovare valori duplicati in un vettore

    Dato il vettore A, non ordinato, voglio estrarre nel vettore B i valori non univoci presenti in A

    es. A = ['x', 'y', 'z', 'y']; ==> B = ['Y'];

    una mano per favore? :master:
    Pietro

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao pietro09,

    ti butto li una soluzione
    codice:
    function arrDoppi(arr){
    	var arr2=new Array();
    	var arr3=new Array();
    	for(var i=0;i<arr.length;i++){
    		if(arr2[arr[i]])arr3[arr3.length]=arr[i]
    		arr2[arr[i]]=arr[i]
    	}
    	return arr3
    }
    
    A=['x','y','z','y','k','l','m','k','v']
    for(i=0;i<A.length;i++)
    	document.write(A[i]+'
    ');
    B=arrDoppi (A)
    document.write('<hr>')
    for(i=0;i<B.length;i++)
    	document.write(B[i]+'
    ');

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ti butto li una soluzione
    Non è propriamente una soluzione "buttata così". Ho dovuto faticare un poco per capire l'algoritmo, e non è neanche facile trovare qualcosa in rete. Interessante. Ciao
    Pietro

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: lo puoi provare con questi dati?

    ['x','y','z','y','z','z'];


    dovrebbe restituire ['y', 'z'] :master:



    l'ho corretto così:
    codice:
    function arrDoppi(arr)
    {
    	var arr2 = new Array();
    	var arr3 = new Array();
    	for(var i = 0; i < arr.length; i++)
    	{
    		if(arr2[arr[i]] && arr3.indexOf(arr[i]) == -1 ) arr3[arr3.length] = arr[i];
    		arr2[arr[i]] = arr[i];
    	}
    	return arr3;
    }
    Pietro

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    9

    trovare duplicati

    innanzitutto scusate la mia ignoranza ma sto cercando di studiare java x l'uni,ma volendo non si potrebbero usare due for,uno x fissare l'elemento e l'altro x scorrere il vettore??
    ditemi un pò voi

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: Diavolo! io non mi riccordo niente e willybit è da un secolo che non lo vedo :master:
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    9

    duplicati

    ah cavolo xkè stavo cercando di risolvere il tuo esercizio x l'uni e ho trovato questa discussione

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Questo è quello che ho raccolto
    codice:
        '---------------------------------------------------------------------------
        'restituisce un vettore di valori duplicati nel vettore argomento
        '---------------------------------------------------------------------------
        Public Function ValoriDuplicati(ByVal v As String()) As String()
            Dim u(v.GetUpperBound(0)) As String
            Dim n As Integer = -1
            For i As Integer = 0 To v.GetUpperBound(0)
                For j As Integer = 0 To v.GetUpperBound(0)
                    If i <> j AndAlso v(i) = v(j) AndAlso Array.IndexOf(u, v(i)) = -1 Then
                        n += 1
                        u(n) = v(i)
                        Exit For
                    End If
                Next
            Next
            ReDim Preserve u(n)
            Return u
        End Function
    :quote: si, è in basic. L'ho messo perchè funziona. Da tradurre in javascript



    Questo è sicuramente in javascript
    codice:
    function Button2_onclick() 
    {
        var a = ['x','y','z','y','z','z'];
        //var b = arrDoppi(a);
        var c = ValoriDuplicati(a);
        alert(c);
    
    }
    
    if (!Array.prototype.indexOf)
    	Array.prototype.indexOf = function(item, startIndex) 
    	{
    		var len = this.length;
    		if (startIndex == null)
    			startIndex = 0;
    		else if (startIndex < 0) 
    		{
    			startIndex += len;
    			if (startIndex < 0)
    				startIndex = 0;
    		}
    		for (var i = startIndex; i < len; i++) 
    		{
    			var val = this[i] || this.charAt && this.charAt(i);
    			if (val == item)
    				return i;
    		}
    		return -1;
    	};
    function ValoriDuplicati(v)
    {
        var u = [];
        for(var i = 0; i < v.length; i++)
        {
            for(var j = 0; j < v.length; j++)
            {
                if(i != j && v[i] == v[j] && u.indexOf(v[i]) == -1)
                {
                    u.push(v[i]);
                    break;
                }
            }
        }
        return u;
    }
    BADA CHE NON HO CONTROLLATO, E' ROBA VECCHIA
    Pietro

  9. #9
    Pare funzionare:
    Codice PHP:
    <html>
    <
    head>
    <
    title>Test</title>
    <
    script type="text/javascript">
    A=['x','y','z','y','k','l','m','k','v'];
    function 
    cercaDoppi() {
        
    B=new Array();
        for (
    i=0;i<A.length;i++) {
            for (
    j=0;j<A.length;j++) {
                if ((
    i!=j) && (A[i]==A[j])) {
                    
    // ok, ho trovato un doppio, lo aggiungo a B se non c'e' gia'
                    
    if (B.indexOf(A[i]) == -1)
                        
    B[B.length]=A[i];
                    break;
                }
            }
        }
        
    // scrivo il vettore A nel div uno
        
    var Stringa="Vettore A
    "
    ;
        for (
    i=0;i<A.length;i++) {
            
    Stringa += A[i] + "
    "
    ;
        }
        
    document.getElementById("uno").innerHTML Stringa;
        
    // scrivo il vettore B nel div due
        
    Stringa="Vettore B
    "
    ;
        for (
    i=0;i<B.length;i++) {
            
    Stringa += B[i] + "
    "
    ;
        }
        
    document.getElementById("due").innerHTML Stringa;
    }
    </script>
    </head>
    <body onload="cercaDoppi();">
    <div id="uno"></div>
    <div id="due"></div>
    </body>
    </html> 
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    9
    scusami mi potresti spiegare xkè nella riga sotto il primo commento,nell'if x intenderci,hai messo -1??

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.