Originariamente inviato da Calaf1966
A mio avviso il problema deriva dal fatto che nella funzione "cambia", di fatto stai cercando di definire una nuova array locale impostandola ad 1. Infatti per definire una variabile non è strettamente necessario usare la chiave "var".
Così facendo, nella funzione "salva()" visualizzi l'array globale che è però ancora impostata a zero.
questo non è corretto.
Se uso una variabile dentro una funzione, ma definita a livello di scope globale, non sto creando una nuova variabile, sto usando quella globale.

Infatti questo codice non ha nessun problema

codice:
  <script type="text/javascript">
        // <![CDATA[
        
        var prova=new Array();

        prova['a'] = 0;
        prova['b'] = 0;
        prova['c'] = 0;
        prova['d'] = 0;
        prova['e'] = 0;


        function salva() {
            alert(prova['a']);
        }
        
        function cambia() {
            prova['a'] = 1;
        }
        
        salva(); // restituisce 0
        cambia();
        salva(); // restituisce 1
        
        // ]]>
        </script>
non capisco quale sia l'anomalia di questo codice... :master: