Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: help ordinare array

  1. #1

    help ordinare array

    ciao ragazzi.. è la prima volta che scrivo nel forum e lo faccio perchè avrei bisogno del vostro aiuto!
    sto cercando di capire il funzionamento del linguaggio javascript (ho già sistemato qualche script preso qua e là) per sistemare il mio sito di fantacalcio..
    bene.. oggi ho creato quasi dal nulla questa pagina www.legasalamandra.altervista.org/globale.htm !
    tutto funziona perfettamente, tranne che non riesco ad ordinare la tabella in base all'ultimo valore!
    questo è il codice che utilizzo! so che è scritto male e che potrebbe essere reso migliore, ma ciò che vorrei è che sopratutto funzionasse la funzione ordinatrice...

    sapete aiutarmi??? grazie!

    codice:
    function Glob(Nome,Girone,Pos,Media,Pesata) {
    	this.Nome = Nome
    	this.Girone = Girone
    	this.Pos = Pos
    	this.Media = Media
    	this.Pesata = Pesata
    }
    
    
    function ordina(a,b) {
              	if (a.Pesata>b.Pesata) return -1;
    		if (a.Pesata<b.Pesata) return 1;
             	return 0;
    }
    
    function GeneraGlobale() {
    var tabB = new Tabella(2,5)
    var arrGlobale = new Array ()
    var i,j,cnt,cut,m,n,w,f,x,y,z,jolly
    	tabB.nome="globale"
    	tabB.larghezza=50
    	tabB.border=1
    	tabB.cellpadding=3
    	tabB.cellspacing=0
    	tabB.stile="ClassEl"
    	tabB.SetLarghezzaColonna(1,2)
    	tabB.SetLarghezzaColonna(2,35)
    	tabB.SetLarghezzaColonna(3,28)
    	//tabB.SetLarghezzaColonna(4,20)
    	tabB.SetLarghezzaColonna(4,20)
    	tabB.SetLarghezzaColonna(5,20)
    	
    	tabB.SetStileRiga(1,"IntRossoBlu")
    	tabB.SetStile(1,1,"CellaCentro")
    	tabB.SetStile(1,2,"CellaCentro")
    	tabB.SetStile(1,3,"CellaCentro")
    	//tabB.SetStile(1,4,"CellaCentro")
    	tabB.SetStile(1,4,"CellaCentro")
    	tabB.SetStile(1,5,"CellaCentro")
    	
    	tabB.SetValore(1,1,"Pos.")
    	tabB.SetValore(1,2,"Fantasquadra")
    	tabB.SetValore(1,3,"Pos.Campionato")
    	//tabB.SetValore(1,4,"Divisione")
    	tabB.SetValore(1,4,"Media Tot.")
    	tabB.SetValore(1,5,"Media Tot. Pesata")
    
    var h = new Array ()
    var k = new Array ()
    			
    	for(cnt=1;cnt<25;cnt++) {
    k[cnt]=arrClassifica[cnt].TMed
    }
    m=(k[1]+k[2]+k[3]+k[4]+k[5]+k[6]+k[7]+k[8])/8
    n=(k[9]+k[10]+k[11]+k[12]+k[13]+k[14]+k[15]+k[16])/8
    w=(k[17]+k[18]+k[19]+k[20]+k[21]+k[22]+k[23]+k[24])/8
    
    f=Math.max(m,n,w)
    x=m/f
    y=n/f
    z=w/f
    
    
    	for(cut=1;cut<25;cut++) {
    if (arrClassifica[cut].IDGirone==1){h[cut]=(x);}
    if (arrClassifica[cut].IDGirone==2){h[cut]=(y);}
    if (arrClassifica[cut].IDGirone==3){h[cut]=(z);}
    
    jolly = ((arrClassifica[cut].TMed)*h[cut])
    
    var o = new Array ()
    if(arrClassifica[cut].IDGirone==1){o[cut]=("Serie A")}
    if(arrClassifica[cut].IDGirone==2){o[cut]=("Liga")}
    if(arrClassifica[cut].IDGirone==3){o[cut]=("Premier League")}
    
    
    arrGlobale[cut] = new Glob (arrClassifica[cut].Nome,o[cut],arrClassifica[cut].Pos,arrClassifica[cut].TMed,jolly)
    }
    
    //arrGlobale.sort(ordina)
    //arrGlobale.sort(function (a,b) {
    //return a.Pesata-b.Pesata
    //})
    
    
    	j=2
    	for(i=1;i<arrGlobale.length;i++) {
    
    if (arrGlobale[i].Girone=="Serie A") {
    				sR="R"
    			} else if (arrGlobale[i].Girone=="Liga") {
    				sR="V"
    			} else if (arrGlobale[i].Girone=="Premier League") {
    				sR="Blu"
    			} 
    
    if ((j % 2) == 0) {
    				tabB.SetStileRiga(j,"riga-dispari")
    			} else {
    				tabB.SetStileRiga(j,"riga-pari")
    			}
    	
    			tabB.SetStile(j,1,"CellaCentro")
    			tabB.SetStile(j,2,"Cella")
    			tabB.SetStile(j,3,"CellaCentro")
    			//tabB.SetStile(j,4,"CellaCentro")
    			tabB.SetStile(j,4,"CellaCentro")
    			tabB.SetStile(j,5,"CellaCentro")
    			
    			tabB.SetValore(j,1,"<span class='t-xxs"+sR+"'>"+i+"</span>")
    			tabB.SetValore(j,2,"<span class='t-xxs"+sR+"'>[img]../img/fsq/class/"+arrGlobale[i].Nome+".png[/img]"+arrGlobale[i].Nome+"</span>")
    			tabB.SetValore(j,3,"<span class='t-xxs"+sR+"'>"+arrGlobale[i].Pos+"° in "+arrGlobale[i].Girone+"</span>")
    			//tabB.SetValore(j,4,"<span class='t-xxs"+sR+"'>"+arrGlobale[i].Girone+"</span>")
    			tabB.SetValore(j,4,"<span class='t-xxs"+sR+"'>"+arrGlobale[i].Media+"</span>")
    			tabB.SetValore(j,5,"<span class='t-xxs"+sR+"'>"+Math.round(((arrGlobale[i].Pesata)*1000))/1000+"</span>")
    			
    
    			j++
    	}
    	
    		tabB.Stampa()
    document.write("
    ")
    document.write("<span class='t-xxsR'>Media Serie A: "+Math.round((m*1000))/1000+";</span><span class='t-xxsV'> Media Liga: "+Math.round((n*1000))/1000+"; </span><span class='t-xxsBlu'>Media Premier: "+Math.round((w*1000))/1000+"</span>
    ")
    document.write("<span class='t-xxsB'>Media Max: "+Math.round((f*1000))/1000+"</span>
    ")
    document.write("<span class='t-xxsR'>Coeff. Serie A: "+Math.round((x*1000))/1000+";</span><span class='t-xxsV'> Coeff. Liga: "+Math.round((y*1000))/1000+";</span><span class='t-xxsBlu'> Coeff. Premier: "+Math.round((z*1000))/1000+"</span>")
    
    
    }

  2. #2
    è un'intera giornata che ci penso... la funzione sort(ordina) è come se mi svuotasse l'array perchè se l'attivo non mi crea più la tabella e mi dice che l'array.Nome è nullo o non è un oggetto!

  3. #3
    ragazzi sono disperato perchè mi sto sforzando invano! e poi il codice di ordinamento usato allo stesso modo in un'altra pagina funziona.. e su internet dappertutto ho trovato solo questa spiegazione..
    ho notato però che anche con la funzione reversi da questo problema!

  4. #4

  5. #5
    lo stesso codice (o meglio uguale impostazione del js e funziona l'ordinamento alla perfezione)...
    sto esaurendo.
    codice:
    function Acq(IDSquadra,Ruolo,GiocIn,Valore,Data,Datan) {
    	this.IDSquadra = IDSquadra
    	this.Ruolo = Ruolo
    	this.GiocIn = GiocIn
    	this.Valore = Valore
    	this.Data = Data
    	this.Datan = Datan
    }
    
    function GeneraAcquistati() {
    var tabB = new Tabella(2,5)
    var arrAcquisti = new Array ()
    var i,j,cnt,sR,fatto,cut,Desc,datan,prestm
    	tabB.nome="Acquisti"
    	tabB.larghezza=100
    	tabB.border=1
    	tabB.cellpadding=3
    	tabB.cellspacing=0
    	tabB.stile="ClassEl"
    	tabB.SetLarghezzaColonna(1,15)
    	tabB.SetLarghezzaColonna(2,4)
    	tabB.SetLarghezzaColonna(3,32)
    	tabB.SetLarghezzaColonna(4,5)
    	tabB.SetLarghezzaColonna(5,14)
    	tabB.SetStileRiga(1,"IntRossoBlu")
    	tabB.SetStile(1,2,"CellaCentro")
    	tabB.SetStile(1,3,"Cella")
    	tabB.SetStile(1,4,"CellaCentro")
    	tabB.SetStile(1,5,"CellaCentro")
    	tabB.SetValore(1,1,"Fantasquadra")
    	tabB.SetValore(1,2,"Ruo")
    	tabB.SetValore(1,3,"Giocatore Acquistato")
    	tabB.SetValore(1,4,"$Acq")
    	tabB.SetValore(1,5,"Data")
    
    	cnt=1
    	cut=0
    	for(i=1;i<arrBilanci.length;i++) {
    serie=arrBilanci[i].IDSquadra;
    if((serie>8) && (serie<17)){
    		merlib=arrBilanci[i].Descrizione.search(/Mercato Libero/)
    		prest=arrBilanci[i].Descrizione.search(/Tesseramento in prestito/)
    		Desc=arrBilanci[i].Descrizione
    					
    		if ((merlib != -1) && (prest == -1)) { 		
    			Ruolo=Desc.charAt(12)
    	
    			if (Ruolo=="P") {
    				sR="G"
    			} else if (Ruolo=="D") {
    				sR="V"
    			} else if (Ruolo=="C") {
    				sR="R"
    			} else if (Ruolo=="A") {
    				sR="Blu"
    			} 	
    	
    
    			datan=arrBilanci[i].Data.valueOf()
    			
    			cut=arrBilanci[i].Descrizione.search(/al Mercato Libero/)	
    			arrAcquisti[cnt] = new Acq(arrFantasquadre[arrBilanci[i].IDSquadra].Nome,Ruolo,arrBilanci[i].Descrizione.slice(15,cut),-arrBilanci[i].Valore,arrBilanci[i].Data.slice(0,10),datan)
    			
    			
    			cnt++
    		}}
    else{}
    	}
    
    	arrAcquisti.sort(ordsquadra)
    	arrAcquisti.sort(orddata)
    	
    	
    
    	j=2
    	for(i=0;i<cnt-1;i++) {
    
    			if ((j % 2) == 0) {
    				tabB.SetStileRiga(j,"riga-dispari")
    			} else {
    				tabB.SetStileRiga(j,"riga-pari")
    			}
    		
    			tabB.SetStile(j,1,"Cella")
    			tabB.SetStile(j,2,"CellaCentro")
    			tabB.SetStile(j,3,"Cella")
    			tabB.SetStile(j,4,"CellaCentro")
    			tabB.SetStile(j,5,"CellaCentro")
    
    
    			if (arrAcquisti[i].Ruolo=="P") {
    				sR="G"
    			} else if (arrAcquisti[i].Ruolo=="D") {
    				sR="V"
    			} else if (arrAcquisti[i].Ruolo=="C") {
    				sR="R"
    			} else if (arrAcquisti[i].Ruolo=="A") {
    				sR="Blu"
    			} 
    
    			tabB.SetValore(j,1,"<span class='t-xxs"+sR+"'>[img]../img/fsq/class/"+arrAcquisti[i].IDSquadra+".png[/img] "+arrAcquisti[i].IDSquadra+"</span>")
    			tabB.SetValore(j,2,"<span class='t-xxs"+sR+"B'>"+arrAcquisti[i].Ruolo+"</span>")
    			tabB.SetValore(j,3,"<span class='t-xxs"+sR+"B'>"+arrAcquisti[i].GiocIn+"</span>")
    			tabB.SetValore(j,4,"<span class='t-xxs"+sR+"'>"+arrAcquisti[i].Valore+"</span>")
    			tabB.SetValore(j,5,"<span class='t-xxs"+sR+"'>"+arrAcquisti[i].Data+"</span>")
    
    			j++
    	}
    	if (arrAcquisti.length == 0) {
    		document.write("ATTENZIONE, non ci sono giocatori acquistati!!!")
    	} else {
    		tabB.Stampa()
    	}
    }
    
    
    function orddata(a,b) {
               if (a.Datan>b.Datan) return -1;
               if (a.Datan<b.Datan) return 1;
               return 0;
    }
     
    
    function ordsquadra(a,b) {
               if (a.IDSquadra>b.IDSquadra) return 1;
               if (a.IDSquadra<b.IDSquadra) return -1;
               return 0;
    }
    vi prego aiutatemi!

  6. #6
    sto cominciando a perdere le speranze! sono due giorni che ci penso e che guardo e riguardo i due codici, li confronto e non trovo differenze!
    sto sbiellando!

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A volte meglio abbandonare (momentaneamente) e proseguire con altri "lavori" d'altronde quello che vuoi fare è complesso per esperti, e non si capisce neanche bene lo scopo di tutto ciò
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    finalmene una risp! innanzitutto grazie!
    comunque non posso abbandonare perchè è un progetto cui tengono i miei amici del sito!
    il senso dello script è quello di creare una classifica di un fantacalcio tra amici comparando i punteggi ottenuti in tre gironi diversi! il mio problema è solo quello di ordinare la tabella! è questo che mi fa impazzire! se non ordino funziona perfettamente, (però che senso ha una clssifica non ordinata?)

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    La pagina è un casino, non puoi lavorare cosi per fare del debug devi togliere tutto e testare lo script in una pagina vuota altrimenti cerchi un errore nello script e invece è da tutta altra parte per iniziare togli questo script
    codice:
    script type="text/javascript">
    //<![CDATA[
    document.write('<s'+'cript type="text/javascript" src="http://ad.altervista.org/js.ad/size=728X90/r='+new Date().getTime()+'"><\/s'+'cript>');
    //]]>
      </script>
    che genera un errore poi se già non lo fai usa firefox per testare la pagina con installato l'estensione firebug
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    ma io so per certo che l'errore lo da il comando arrGlobale.sort
    perchè se lo nascondo funziona perfettamente!
    ho provato anche con arrGlobale.reverse ad esempio ed ho visto che anche in questo caso mi svuota l'array!
    è un problema strano! e so che mi dice problema strano perchè sullo strumento di debug di inernet explorer mi dice che poi l'elemento dell'array Globale è nullo o non è un oggetto!
    ma uso la stessa funzione dell'altro codice riportato!
    è assurdo!
    cmq grazie per l'aiuto!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.