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

    maggiore tra i valori di ARRAY di decimali e/o interi

    ciao raga!
    allora,ho un array che riempio da un FORM con numeri decimali o interi e devo trovare il maggiore!
    ho fatto così però se tra i 4 valori ci sono degli interi, li ignora e cerca il maggiore solo tra quelli decimali
    per es. (2.6666667,12,14,7.222222) mi da come maggiore 7.222222.....xchè cavolo????
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    function maxArray(anArray) {
     maxi = '';
     for (i=0;i<anArray.length;i++) {
      if (anArray[i] > maxi) {
    	 maxi = anArray[i];
      } // if (anArray[i] > maxi)
     } // for (i=0;i<anArray.length;i++)
     return maxi;
    } // function maxArray(anArray)
    //-->
    
    <!--
    var myArr = new Array();
    function assegnaArray(aForm) {
     a          = 0;
     var tmpArr = new Array();
     nbFigli    = aForm.children.length;
     for (i=0;i<nbFigli;i++) {
      curFiglio = aForm.children(i);
    	if (curFiglio.tagName == 'INPUT' && curFiglio.type == 'text') {
    	 tmpArr[a++] = curFiglio.value;
    	} //  if (curFiglio.tagName == 'INPUT' && curFiglio.type == 'text')
     } // for (i=0;i<nbFigli;i++) 
     return tmpArr;
    } // function assegnaArray(aForm)
    
    function ass() {
     myArr = assegnaArray(document.getElementById('myform'));
     alert(myArr);
     
    alert(maxArray(myArr));
    
    } // function ass()
    //-->
    </script>
    
    </head>
    <body>
    <form action="" method="post" id="myform">
     A<input type="text" id="c[0]" size="20">
    
     B<input type="text" id="c[1]" size="20">
    
     C<input type="text" id="c[2]" size="20">
    
     D<input type="text" id="c[3]" size="20">
    
     E<input type="text" id="c[4]" size="20">
    
    
     <input type="text" name="T1" size="20">
    
     </p>
    </form>
    <input type="button" value="Assegna" onclick="ass()">
    </body>
    </html>

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    I valori provenienti da un form sono stringhe, non numeri... li devi convertire:

    tmpArr[a++] = parseFloat(curFiglio.value);

    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

    ok ok

    ok ho capito!

  4. #4

    memorizzare il campo maggiore

    se volessi memorizzare in qualche modo il campo del form che è risultato essere maggiore???
    vorrei incrementare il suo valore di 1 o più

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Traduci "memorizzare" :master:

    variabile = maxArray(myArr);

    variabile = variabile +1;
    variabile++;
    variabile += 1;

    sono tutti modi equivalenti per incrementare di 1 il valore...

    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

  6. #6

    mi spiego...

    il problema è questo:
    io ottengo il valore massimo dell'array, però poi dovrei in qualche modo sapere a quale campo del form corrisponde (cioè in quale campo del form è contenuto) in modo da cambiare il value di questo campo incrementandolo di 1

    :master:

  7. #7

    forse potrebbe andare così...

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    var c;
    function maxArray(anArray) {
    
     maxi = '';
     for (i=0;i<anArray.length;i++) {
      if (anArray[i] > maxi) {
    	 maxi = anArray[i];
    
    //------------------modifiche-----------------------------
    	  c = i; //memorizzo la posizione del valore maggiore (nonchè il numero del campo, nel mio caso è uguale al nome del campo)
    //------------------modifiche-----------------------------
    
      } // if (anArray[i] > maxi)
     } // for (i=0;i<anArray.length;i++)
    
     return maxi;
    } // function maxArray(anArray)
    //-->
    
    <!--
    
     var myArr = new Array();
    function assegnaArray(aForm) {
     a          = 0;
     var tmpArr = new Array();
     nbFigli    = aForm.children.length;
     for (i=0;i<nbFigli;i++) {
      curFiglio = aForm.children(i);
    	if (curFiglio.tagName == 'INPUT' && curFiglio.type == 'text') {
    	 tmpArr[a++] = parseFloat(curFiglio.value);
    	} //  if (curFiglio.tagName == 'INPUT' && curFiglio.type == 'text')
     } // for (i=0;i<nbFigli;i++) 
    	
    
    
     return tmpArr;
    } // function assegnaArray(aForm)
    
    function ass() {
     myArr = assegnaArray(document.getElementById('myform'));
     alert(myArr);
     
    alert(maxArray(myArr));
    //------------------modifiche---------------------------
    alert("il campo con il value max è "+c); //il numero(nel mio caso anche il nome) del campo
    fff.ppp.value = maxi; //maxi contiene il numero maggiore
    document.fff.elements[c].value = maxi+1;
    //------------------modifiche---------------------------
    } // function ass()
    //-->
    </script>
    
    </head>
    <body>
    <form name="fff" action="" method="post"  id="myform">
     A<input name="0" type="text" id="c[0]" size="20">
    
     B<input name="1" type="text" id="c[1]" size="20">
    
     C<input name="2" type="text" id="c[2]" size="20">
    
     D<input name="3" type="text" id="c[3]" size="20">
    
     E<input name="4" type="text" id="c[4]" size="20">
    
    
     //------------------modifiche---------------------------
    <input type="text" name="ppp" size="20">
    
    //------------------modifiche---------------------------
     </p>
    </form>
    <input type="button" value="Assegna" onclick="ass()">
    </body>
    </html>
    così funzia...macchinoso sicuramente...conosco na cippa di js

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.