Visualizzazione risultati 1 fino 6 di 6

Discussione: associare numeri in js

  1. #1
    Guest

    Predefinito associare numeri in js

    ciao!!! ho le var h, m, n che sono rispettivamente ore, minuti, e secondi di quel momento.
    Esempio: 19, 55, 05

    vorrei unirle, ma non sommarle, in modo da formare:
    195505

    facendo
    var tot = h+m+n;
    viene fuori la somma...

    come posso fare?

    grazie a tutti!

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Il metodo più sbrigativo, anche se il più rozzo, è:

    Codice:
    var tot = h+''+m+''+n;
    in questo modo ti assicuri che nella concatenazione di stringhe (che è il tuo scopo) non vengano a trovarsi vicine due somme tra valori numerici.

    Proprio per quest'ultima osservazione per una soluzione un po' più "raffinata" potresti utilizzare:

    Codice:
    var tot = h + m.toString() + n;
    i minuti vengono esplicitamente convertiti in stringa e gli altri due valori numerici (h s) avendo concatenata tra di loro -nel mezzo- una stringa non creano problemi di somme numeriche o altro, ma viene usato -implicitamente- il loro valore stringa per far parte di un'unica stringa.
    Ultima modifica di heracleum : 29-12-2005 alle ore 21.44.55
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Con lo script messo sopra c'è un piccolo problema, se uno dei numeri è minore di 10 (come nel caso proposto), l'output che si ottiene non è 195505 ma 19555.

    Puoi ovviare al problema con uno script più "mirato", ma che ovviamente richiede la conoscenza del formato in cui devi memorizzare l'ora:
    Codice:
    var str = '' + (h < 10 ? '0' + h : h) + (m < 10 ? '0' + m : m) + (s < 10 ? '0' + s : s)
    la variabile str contiene così una STRINGA ottenuta giustapponendo i tre valori. Se ti serve un NUMERO ti basta ovviamente fare questo:
    Codice:
    var nr = parseInt (str)
    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    Guest

    Predefinito

    grazie millle a tutti e due ;)
    un'ultima cosa, sempre sul js..
    come posso fare che alla pressione di un tasto scelto da me (in questo caso CTRL o INVIO) si esegua una funzione tipo cont(); ?

    grazie a tutti!

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Puoi usare il gestore di evento onKeyDown, ma funziona con qualsiasi tasto... non so se in JS esista un modo per stabilire quale sia il tasto premuto...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Se guardate qui trovate tutte le risposte.
    Il Ctrl è 17 e l'Invio è il 13.
    Codice HTML:
    <html>
    <head>
    <title>Esempio tasto</title>
    </head>
    
    <body bgcolor="#FFFFFF"  onload="test()">
    <SCRIPT LANGUAGE="JavaScript"><!--
    var abilitato=0;
    var strin="";     
    function test(){
    	//analizza se il browser e' compatibile con Javascript
    	browserName=navigator.appName.charAt(0);
    	browserVer=parseInt(navigator.appVersion);
    	if (browserName=="M" && browserVer >= 3) abilitato=1;
    	if (browserName=="N" && browserVer >= 3) abilitato=2;
    	if (browserName=="N" && browserVer >= 4) abilitato=3;
    	if (browserName=="M" && browserVer >= 4) abilitato=4;
    	}
    function keyDown(e) {
            	if (abilitato==3) {
    		//var ns4=1;
    		var nKey=e.which; var ieKey=0;
    		var realkey = String.fromCharCode(e.which);
    		strin="Codice tasto in Netscape: "+nKey+". Premuto tasto "+realkey
    		}
            	if (abilitato==4) {
    		//var ns4=0;
    		var ieKey=event.keyCode; var nKey=0;
    		var realkey = String.fromCharCode(event.keyCode);
    		strin="Codice tasto in Explorer: " + ieKey+". Premuto tasto "+realkey
    		}
               	alert(strin)
    	}
    document.onkeydown = keyDown
    //if (ns4) document.captureEvents(Event.KEYDOWN)
    //-->
    </SCRIPT>
    <p>Premi un tasto qualsiasi della tastiera e notare come alcuni tasti vengano 
      individuati da Netscape e altri no...</p>
    <p>&lt;--- <a href="javascript:history.back()">Torna indietro</a></p>
    <p><!--Copyright 2000 Valdelli & HTML.it--></p>
    </body>
    </html>
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •