Visualizzazione dei risultati da 1 a 8 su 8

Discussione: array multid. noglobal

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    4

    array multid. noglobal

    Chi mi sa spiegare come "globalizzare" un
    Array multidimensionale?
    Ho una funzione che crea un Array multidimensionale(due indici)
    partendo da una stringa (da PHP) del tipo:
    stringa="a0,a1,a2...an;b0,b1,b2,...bn;....;z0,z1,z 2,...zn";
    La funzoine JS, con due cicli while nestati,mi crea l'array:
    v[0][0]=a0
    v[0][1]=a1
    v[0][2]=a2
    .......
    v[0][n]=an
    v[1][0]=b0
    v[1][1]=b1
    ........ ecc.
    Il tutto funziona solo che le variabili v[x][y]
    rimangono dentro le maledette parentesi { } della funzione
    e non c'è verso di utilizzarle al di fuori in un'altra
    funzione,sono cioè locali.
    Se provo nel ciclo interno di while a definirle con var
    var v[x]=new Array(); in luogo di v[x]=new Array();
    mi appare un alert di errore :
    "previsto ;"
    Mistero della sfinge!!
    pierangelo
    -INTERNET
    +CABERNET

  2. #2
    Reale_Augello
    Guest

    Hai...

    ... provato a definire il vettore v globalmente ?

    codice:
    <script language="JavaScript">
    
    var v=new Array(n);
    for (i=0; i<n; i++) {
     	v[i]=new Array(q);
    	for (j=0; j<q; j++) v[i][j]="";
    }
    
    ...
    
    </script>
    Ovviamente devi sapere prima i valori di n e q.

    Ciao !

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    4
    ..zzo che velocità!!
    Ti ringrazio molto.
    Se ho ben capito dovrei prima porre tutte le variabili a "" ?
    anche se non mi è chiaro il senso.
    pierangelo
    -INTERNET
    +CABERNET

  4. #4
    Reale_Augello
    Guest

    ...

    Originariamente inviato da pierazz
    ..zzo che velocità!!
    Ti ringrazio molto.
    Se ho ben capito dovrei prima porre tutte le variabili a "" ?
    anche se non mi è chiaro il senso.
    Beh, formalmente sarebbe meglio creare un vettore bidimensionale di stringhe (dato che ci metterai delle stringhe):

    codice:
    <script language="JavaScript">
    
    var v=new Array(n);
    for (i=0; i<n; i++) {
     	v[i]=new Array(q);
    	for (j=0; j<q; j++) v[i][j]=new String();
    }
    
    ...
    
    </script>
    Ciao !

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    4
    Ciao
    mi spiace ma niente da fare:
    ho adattato il tuo script coi nomi delle mie variabili
    e posto per semplicità tutte le variabili =aaaa:
    <script language="javascript">
    function stringa2()
    {
    var n=2;
    var q=5;
    var area2=new Array(n);
    for (i=0; i<n; i++) {
    area2[i]=new Array(q);
    for (j=0; j<q; j++)
    {
    area2[i][j]=new String();
    }
    }
    for (i=0; i<n; i++) {
    for (j=0; j<q; j++)
    {
    area2[i][j]="aaaa";
    //document.write (area2[i][j]);
    }
    }
    prova();
    }
    function prova()
    {
    document.write (area2[1][2]);
    }
    </script>
    se non richiamo la seconda funzione (prova) tutto funziona
    ma come dicevo all'inizio non posso farci niente con le variabili area2 visto che non posso esportarle.
    Se inserisco il link a prova mi da errore:area2 non definito.
    Ti ringrazio comunque , ora vado a dormire e chissà che la notte non
    porti consiglio.
    Ciao
    pierangelo
    -INTERNET
    +CABERNET

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non basta cambiare
    var area2=new Array(n);
    in
    area2=new Array(n);
    ?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Oppure (anche formalmente corretto):

    var area2=new Array();
    function stringa2()
    {
    var n=2;
    var q=5;
    for (i=0; i<n; i++) {
    area2[i]=new Array(q);
    for (j=0; j<q; j++)
    { ....

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    4
    ringrazio entrambi
    ora il mio script funziona:
    in definitiva bastava (com'è logico) portare
    FUORI dalla funzione la dichiarazione var aree2=new Array()
    ciao
    pierangelo
    -INTERNET
    +CABERNET

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.