Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Per chi ne mangia di js

    Se ho due valori di un array che devo confrontare e devono essere uguali, ma in un array il dato è nella forma xg123, mentre nell'altro 123 e basta (xg è costante nel primo array, cambiano solo i numeri), come faccio?
    Voglio usare un if, vorrei sapere se posso dirgli di confrontare valore array1[i] == xg unito a valore array2[j] .
    O anche confronta gli ultimi 3 valori dell'array1 con l'array 2... insomma l'xg devo cercare di eliminarlo..

    I file js che contengono i 2 array sono generati da un programma, quindi togliere l'xg dall'array1 non risolve il problema perchè devo rigenerare i js periodicamente.

    Grazie!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Benvenuto sul forum

    E' estremamente evidente il fatto che tu abbia iniziato ad utilizzare il forum tralasciando di leggere il regolamento... cosa che ti invito a fare al piu' presto.

    if (array1[i] == 'xg'+array2[j])

    oppure

    if (array1[i].substr(2) == array2[j])

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Scusa, avevo super fretta, di solito leggo sempre le regole di un forum. Fatto ora comunque. Avevo scelto un titolo inutile. Comunque passando al problema non ho risolto. Ovvero la pagina che mi genera ha tutto corretto, tranne la variabile arrCrediti che me la visualizza in tutte le colonne come undefined, e non riesco a capire perchè. L'errore è nel ciclo for che la inizializza?
    Ecco il codice della funzione (le chiamate a variabili su js esterni o ai css sono tutte corrette, l'errore è in questa funzione).
    codice:
    function GeneraRosa(IDSquadra) {
    var tabR = new Tabella(2,4)
    var i,j,cnt,sT,sR,fatto
    var arrCrediti = new Array()
    	fatto=false
    	tabR.nome="Rosa"
    	tabR.larghezza=95
    	tabR.border=0
    	tabR.cellpadding=1
    	tabR.cellspacing=0
    	tabR.stile="ClassEl"
    	tabR.SetLarghezzaColonna(1,10)
    	tabR.SetLarghezzaColonna(2,60)
    	tabR.SetLarghezzaColonna(3,20)
    	tabR.SetLarghezzaColonna(4,4)
    	tabR.SetLarghezzaColonna(5,6)
    	tabR.SetStileRiga(1,"IntRossoBlu")
    	tabR.SetStile(1,1,"Cella")
    	tabR.SetStile(1,2,"Cella")
    	tabR.SetStile(1,3,"Cella")
    	tabR.SetStile(1,4,"Cella")
    	tabR.SetStile(1,5,"Cella")
    	tabR.SetValore(1,1,"Ruolo")
    	tabR.SetValore(1,2,"Nome")
    	tabR.SetValore(1,3,"Squadra")
    	tabR.SetValore(1,4,"Val")
    	tabR.SetValore(1,5,"$Acq")
    	cnt=2
    	for(i=1;i<arrRose.length;i++) {
    		if ((arrRose[i].IDSquadra==IDSquadra)&&(arrRose[i].Stato==0)) {
    			fatto=true
    			for (j=1;j<arrGiocatoriA.length;j++) {
    				if (arrRose[i].Nome.substr(2)==arrGiocatoriA[j].ID) {
    					arrCrediti[i]=arrGiocatoriA[j].Crediti
    				}
    			}
    			if ((cnt % 2) == 0) {
    				tabR.SetStileRiga(cnt,"RosaD")
    			} else {
    				tabR.SetStileRiga(cnt,"RosaP")
    			}
    			tabR.SetStile(cnt,1,"Cella")
    			tabR.SetStile(cnt,2,"Cella")
    			tabR.SetStile(cnt,3,"Cella")
    			tabR.SetStile(cnt,4,"CellaCentro")
    			tabR.SetStile(cnt,5,"CellaCentro")
    			sT="<span class='t-xxs"
    			if (arrRose[i].Ruolo==1) {
    				sR="G"
    				sT+="G'>Portiere</span>"
    			} else if (arrRose[i].Ruolo==2) {
    				sR="V"
    				sT+="V'>Difensore</span>"
    			} else if (arrRose[i].Ruolo==3) {
    				sR="R"
    				sT+="R'>Centrocampista</span>"
    			} else if (arrRose[i].Ruolo==4) {
    				sR="Blu"
    				sT+="Blu'>Attaccante</span>"
    			} 
    			tabR.SetValore(cnt,1,sT)
    			tabR.SetValore(cnt,2,"<span class='t-xxs"+sR+"B'>"+arrRose[i].Nome+"</span>")
    			tabR.SetValore(cnt,3,"<span class='t-xxs"+sR+"'>"+arrRose[i].Squadra+"</span>")
    			tabR.SetValore(cnt,4,"<span class='t-xxs"+sR+"'>"+arrCrediti[i]+"</span>")
    			tabR.SetValore(cnt,5,"<span class='t-xxs"+sR+"B'>"+arrRose[i].Acq+"</span>")
    			cnt++
    		} else {
    			if ((fatto) && (arrRose[i].IDSquadra!=IDSquadra)) i=arrRose.length
    			//esce dal ciclo senza proseguire per tutte le altre
    		}
    	}
        tabR.Stampa()
    }

  4. #4
    Cancellatevi dalla mente il codice di prima perchè ho scoperto un altro problema. xg123 non è una stringa, ma una variabile. Ovvero c'è un altro js richiamato nell'head della pagina dove c'è questa funzione (sempre generato dal programma, è un manageriale di fantacalcio) che trasforma l'elemento xg123 in un nome di un giocatore (esempio xg252="Del Piero Alessandro" . Quindi ho un'array (ArrRose)che nella colonna nome ha dei nomi tutti diversi e un altro che ha 123 e basta. Devo confrontarli. Il piano adottato nel codice sotto è il seguente: creare un nuovo array chiamato arrNomiGiocatori e assegnargli come valori i numeri dell'array2 (arrGiocatoriA) preceduti da xg, sperando che poi anche questi valori vengano trasformati nei nomi dei giocatori. Ho così un array monocolonna con lo stesso numero di elementi di arrGiocatoriA, ordinato nello stesso modo ma con al posto dei numeri i nomi.In questo modo il confronto è possibile. Ecco il codice:
    Dove sbaglio visto che arrCrediti rimane sempre undefined?
    Grazie mille!
    codice:
    function GeneraRosa(IDSquadra) {
    var tabR = new Tabella(2,4)
    var i,j,w,cnt,sT,sR,fatto
    var arrCrediti=new Array()
    var arrNomiGiocatori=new Array()
    	fatto=false
    	tabR.nome="Rosa"
    	tabR.larghezza=95
    	tabR.border=0
    	tabR.cellpadding=1
    	tabR.cellspacing=0
    	tabR.stile="ClassEl"
    	tabR.SetLarghezzaColonna(1,10)
    	tabR.SetLarghezzaColonna(2,60)
    	tabR.SetLarghezzaColonna(3,20)
    	tabR.SetLarghezzaColonna(4,4)
    	tabR.SetLarghezzaColonna(5,6)
    	tabR.SetStileRiga(1,"IntRossoBlu")
    	tabR.SetStile(1,1,"Cella")
    	tabR.SetStile(1,2,"Cella")
    	tabR.SetStile(1,3,"Cella")
    	tabR.SetStile(1,4,"Cella")
    	tabR.SetStile(1,5,"Cella")
    	tabR.SetValore(1,1,"Ruolo")
    	tabR.SetValore(1,2,"Nome")
    	tabR.SetValore(1,3,"Squadra")
    	tabR.SetValore(1,4,"Val")
    	tabR.SetValore(1,5,"$Acq")
    	cnt=2
    	for (w=1;w<arrGiocatoriA.length;w++) {
    		arrNomiGiocatori[w]='xg'+arrGiocatoriA[w].ID
    	}
    	for(i=1;i<arrRose.length;i++) {
    		if ((arrRose[i].IDSquadra==IDSquadra)&&(arrRose[i].Stato==0)) {
    			fatto=true
    			for (j=1;j<arrNomiGiocatori.length;j++) {
    				if (arrRose[i].Nome==arrNomiGiocatori[j]) {
    					arrCrediti[i]=arrGiocatoriA[j].Crediti
    				}
    			}
    			if ((cnt % 2) == 0) {
    				tabR.SetStileRiga(cnt,"RosaD")
    			} else {
    				tabR.SetStileRiga(cnt,"RosaP")
    			}
    			tabR.SetStile(cnt,1,"Cella")
    			tabR.SetStile(cnt,2,"Cella")
    			tabR.SetStile(cnt,3,"Cella")
    			tabR.SetStile(cnt,4,"CellaCentro")
    			tabR.SetStile(cnt,5,"CellaCentro")
    			sT="<span class='t-xxs"
    			if (arrRose[i].Ruolo==1) {
    				sR="G"
    				sT+="G'>Portiere</span>"
    			} else if (arrRose[i].Ruolo==2) {
    				sR="V"
    				sT+="V'>Difensore</span>"
    			} else if (arrRose[i].Ruolo==3) {
    				sR="R"
    				sT+="R'>Centrocampista</span>"
    			} else if (arrRose[i].Ruolo==4) {
    				sR="Blu"
    				sT+="Blu'>Attaccante</span>"
    			} 
    			tabR.SetValore(cnt,1,sT)
    			tabR.SetValore(cnt,2,"<span class='t-xxs"+sR+"B'>"+arrRose[i].Nome+"</span>")
    			tabR.SetValore(cnt,3,"<span class='t-xxs"+sR+"'>"+arrRose[i].Squadra+"</span>")
    			tabR.SetValore(cnt,4,"<span class='t-xxs"+sR+"'>"+arrCrediti[i]+"</span>")
    			tabR.SetValore(cnt,5,"<span class='t-xxs"+sR+"B'>"+arrRose[i].Acq+"</span>")
    			cnt++
    		} else {
    			if ((fatto) && (arrRose[i].IDSquadra!=IDSquadra)) i=arrRose.length
    			//esce dal ciclo senza proseguire per tutte le altre
    		}
    	}
        tabR.Stampa()
    }

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.