Newsgroup: it.comp.lang.javascript
Titolo: Utilizzo variabili

Buongiorno.
Ho un problema con l'utilizzo di funzioni/variabili in javascript.
 
Supponiamo di avere questa pagina html:
 
*************************************************************
<html>
<head>
<script src="squadra_1.js" type="text/javascript"></script>
<script src="squadra_2.js" type="text/javascript"></script>
<script src="formazione.js" type="text/javascript"></script>
</head>
 
<body>
 
<div>
<a onclick="scriviHTML(1)">Squadra 1</a><br>
<a onclick="scriviHTML(2);">Squadra 2</a>
</div>
 
<div id="myDiv"></div>
 
</body>
</html>
*************************************************************
 
Lo script "formazione.js" è così (concentratevi sulle variabili):
 
*************************************************************
function scriviHTML(input){
var t='';
 
t+='<div>'+equipe+'_'+input+[0]+'</div>';  //Nome della squadra
t+='<div>&nbsp;'+avversari+'_'+input+[0][0]+'</div>'; // Nome 1° avversaria
 
document.getElementById("myDiv").innerHTML = t;
}
 
scriviHTML();
*************************************************************
 
Lo script "squadra_1.js" è così:
 
*************************************************************
var equipe_1=['BAYERN MONACO','Monaco di Baviera','Germania']
 
var avversari_1=[
['JUVENTUS','REAL MADRID','BARCELLONA'],
['1-0','2-2','1-1']
]
*************************************************************
 
 
Lo script "squadra_2.js" è così:
 
*************************************************************
var equipe_2=['PARIS SAINT GERMAIN','Parigi','Francia']
 
var avversari_2=[
['BESIKTAS','PORTO','MILAN'],
['2-1','4-2','0-1']
]
*************************************************************
 
In pratica ho, per ogni squadra, un file esterno .js che riporta dati di ognuna di esse.
Ho chiamato tali file "squadra_1.js", "squadra_2.js"....ecc.
All'interno di tali file ci sono delle variabili che io chiamo con la funzione "scriviHTML(input)".
 
Ma se io passo "input" alla funzione "scriviHTML(input)" non dovrebbe andare a beccarmi le variabili che mi interessano?
Se metto input=2 dovrebbe andare a prendere le variabili
 
equipe_2[0]
avversari_2[0][0]
 
so che ho la funzione "scriviHTML(input)" è sbagliata...ma perchè la funzione, al click, non visualizza nulla?
Ho non si puo' fare nulla?

 ]
 
Diventa così:
 
equipe[1] = ['BAYERN MONACO','Monaco di Baviera','Germania'];
 
avversari[1] = [
  ['JUVENTUS','REAL MADRID','BARCELLONA'],
  ['1-0','2-2','1-1']
];
 
Naturalmente devi dichiarare i due oggetti vuoti il prima possibile:
 
var equipe = {};
var avversari = {};
 
A quel punto puoi semplificare la funzione:
 
function scriviHTML(input){
  var t='';
 
  t+='<div>'+equipe[input][0]+'</div>';
 
 
 
In generale il codice è abbastanza "spaghetti", ma immagino tu stia 
imparando un po' alla volta.
 
Purtroppo JS non ha (ancora) un sistema standardizzato per supportare 
moduli caricati automaticamente. Finchè non impari come gestirli (per 
esempio con require.js o con un transpiler), metti tutto in un singolo 
file.
 
Bye.

 
 
Cosa rappresentano "equipe[1]" e "avversari[1]" ??
Cioe': sono array con il primo indice fisso?? Non capisco
Non è che se chiami:
 
equipe[1] 
 
non ti salta fuori "Monaco di Baviera" ?

 non ti salta fuori "Monaco di Baviera" ?
 
No, ma se chiami equipe[1][1] sì.
 
Nell'esempio ho saltato l'indice 0, visto che non lo usavi nel tuo 
codice, e al suo posto ho messo un array vuoto, quindi equipe[0][1] ti 
darà undefined o qualcosa del genere.
 
Bye.