Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Errore logico in Ciclo

  1. #1

    Errore logico in Ciclo

    Ho una semplice applicazioni in Javascript che sovrebbe aggiungere degli elementi in un carrello della spesa.
    A regola dopo la prima volta che aggiunge un elemento all'array vuoto, dovrebbe confrontare se il successivo è presente nell'array e in caso positivo toglierlo, altrimenti aggiungerlo, questo per fare un sistema di aggiunta/rimozione di prodotti.
    Purtroppo non è così
    la prima volta tutto ok, ma la seconda fa un ciclo in più dopo aver aggiunto l'oggetto e quindi trova se stesso.
    Sicuramente è un errore logico mio, ma non riesco a capire dove stia, potte aiutarmi ?
    Grazie
    - Kiko -

    Codice PHP:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Untitled Document</title>
    <
    script type="text/javascript">
    carrello = new Array(); // DICHIARAZIONE ARRAY CARRELLO DELLA SPESA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    function updateChart(id){
        
    alert("lunghezza carrello = "+carrello.length);
        if (
    carrello.length>0){
            for(var 
    x=0;x<carrello.length;x++){
                
    alert("ciclo "+x);
                if (
    id == carrello[x]) {
                    
    // Rimuovo l'oggetto dall'array
                    
    alert(id+" tolgo "+carrello[x]);
                }else{
                    
    //aggiungo l'oggetto all'array
                    
                    
    aggiunta carrello.push(id);
                    
    alert("aggiungo dal for "+carrello);
                    
                }
            }
        }else{
            
            
    aggiunta carrello.push(id);
            
    alert("aggiungo no for "+carrello);
        }
    }
    </script>
    </head>

    <body>


     [url="#"] Primo pulsante [/url]</p>


     [url="#"] Secondo pulsante [/url]</p>


     [url="#"] Terzo pulsante [/url]</p>
    </body>
    </html> 
    .....vivi nel rispetto di chi vive nel rispetto degli altri ......

  2. #2
    Fai così:

    codice:
    var carrello = [];
    var updateChart = function(id){
       var inChart = false;
       for(i = 0; i < carrello.length; i++){
          if(carrello[i] == id)
            inChart = true;
       }
       if(!inChart) carrello.push(id);
    }
    I DON'T Double Click!

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.