Visualizzazione risultati 1 fino 11 di 11

Discussione: Confronto variabile con array

  1. #1
    Guest

    Question Confronto variabile con array

    Come si fa a confrontare una variabile con gli elementi di un array?
    Se è presente nell'array visualizza "ok" altrimenti "non presente"

    Codice:
    <script>
    ggg=new Array('banane','arance','fragole','ciliege');
    
    function verifica(){
    rrr=form.variabile.value;
    
    if(pippo==ggg) {
    alert("ok");
    
    }else{
    alert("non presente");
    }
    }
    
    </script>
    
    <div align=center>
    <form name="form">
    <input type="text" name="variabile">
    <input type="button" onclick='verifica()' value='verifica'>
    </form>
    
    </div>
    Ultima modifica di max400scuola : 28-01-2012 alle ore 09.44.28

  2. #2
    Guest

    Predefinito

    Prova così

    Codice:
    <script type="text/javascript">
      function in_array(v, a){
        //v => VALORE CERCATO
        //a => ARRAY
    
        for(var i = 0; i < a.length; i++) {
          if(a[i] == v) return true;
        }
        return false;
      }
    
      ggg = new Array('banane', 'arance', 'fragole', 'ciliege');
      
      if(in_array('banane', ggg) {
        alert('presente');
      }else{
        alert('elemento non trovato');
      }
    
    </script>

  3. #3
    Guest

    Predefinito

    mi dà schermo bianco

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da max400scuola Visualizza messaggio
    mi dà schermo bianco
    Che dia schermo bianco è normale poichè se scrivi SOLO quel codice nessun elemento viene inviato al browser.

    Cmq c'è un errore manca una parentesi

    Codice:
    if(in_array('banane', ggg) {
    deve diventare

    Codice:
    if(in_array('banane', ggg)) {

  5. #5
    Guest

    Predefinito

    ok funziona perfettamente ...ho aggiunto la parentesi ed eseguito la funzione
    naturalmente doveve aggiungere il form... comunque ok

    grazie 1000

    ultime 2 cose

    1- in_array è una funzione php? se non mi sbaglio...
    2- c'era un altro modo per cercare la parola nell'array
    tipo scaricare l'array in una variabile come stringa ricercare
    l'elemento scelto? tipo indexof...restituisce la posizione di un carattere
    se è in elenco ti dice la posizione altrimenti -1
    però nel mio caso non si parla di caratteri ma di parole

    grazie

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da max400scuola Visualizza messaggio
    ok funziona perfettamente ...ho aggiunto la parentesi ed eseguito la funzione
    naturalmente doveve aggiungere il form... comunque ok

    grazie 1000

    ultime 2 cose

    1- in_array è una funzione php? se non mi sbaglio...
    E' una funzione di PHP, ma che c'entra? Adesso stiamo parlando di JS, ti serviva una funzione che facesse questo e ti è stata data. Poi chiamarla come vuoi!

    Citazione Originalmente inviato da max400scuola Visualizza messaggio
    2- c'era un altro modo per cercare la parola nell'array
    tipo scaricare l'array in una variabile come stringa ricercare
    l'elemento scelto? tipo indexof...restituisce la posizione di un carattere
    se è in elenco ti dice la posizione altrimenti -1
    però nel mio caso non si parla di caratteri ma di parole
    Certo e ce ne saranno anche tante altre. Ti è stato dato un modo. Se ti serve qualcos'altro, cerca di capire quello che vuoi e poi rimboccati le maniche.


    Citazione Originalmente inviato da max400scuola Visualizza messaggio
    grazie
    Prego!

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,179

    Predefinito

    Citazione Originalmente inviato da max400scuola Visualizza messaggio
    tipo indexof...restituisce la posizione di un carattere
    se è in elenco ti dice la posizione altrimenti -1
    però nel mio caso non si parla di caratteri ma di parole
    Guarda bene che la indexOf() accetta stringhe.

    Ciao!

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Non bisogna confondere il metodo indexOf dell'oggetto String con l'omonimo della classe Array, benché abbiano lo stesso nome si comportano ovviamente in maniera differente: il primo permette di ricercare una sottostringa all'interno di una stringa, l'altro ricerca un elemento dell'array che abbia un determinato valore e ne restituisce l'indice o il numero -1 nel caso in cui non venga trovato.

  9. #9
    Guest

    Predefinito

    @alemoppo: infatti ho visto... il problema è che indexof ti risponde con un numero che ti indica la posizione e questo mi faceva confondere... e allora ho fatto una semplice condizione if...
    se la risposta è uguale o superiore a 0 mi dice "presente" altrimenti (-1) "non presente"

    @karl: effettivamente una cosa sono gli elementi di un array e un'altra cosa sono le stringhe e quindi grazie al comando toString() ho trasformato l'array in Stringa e anche tutto ciò che proviene dal form sottoforma di stringa... e alla fine confronto le due stringhe.

    Ecco qui sembra funzionare ma forse si può semplificare... io per andare sul sicuro ho trasformato tutto in stringa e non ho messo nessun ciclo.

    Codice:
    <script>
    var mioarray=new Array('filippo','pasquale','luigi');
    var visualiz=[mioarray];
    visualiz2=visualiz.toString();
    
    function visualizza(){
    document.getElementById('casella').value=visualiz;
    }
    
    function confronta(){
    var pippo= document.mioform.nome.value;
    pippo2=pippo.toString();
    jjj=visualiz2.indexOf(pippo2);
    if(jjj >=0){
    alert("presente");
    }else{
    alert('non presente');
    }
    }
    </script>
    
    
    Visualizza ciclo: <input type="text" id="casella"><br>
    <input type="button" onclick='visualizza()' value='visualizza array'>
    <form name="mioform">
    <input type="text" name="nome">
    <input type="button" onclick='confronta()' value='confronta'>
    </form>
    Ultima modifica di max400scuola : 28-01-2012 alle ore 16.52.42

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Nel tuo codice ci sono diverse cose che non capisco: a che ti serve la variabile visualiz? Perché non usi la sintassi abbreviata (che hai usato per la variabile visualiz) per creare l'array mioarray?
    Inoltre così com'è scritto è scorretto, poiché se io scrivo nel campo di testo pasquale,luigi risulta presente, il che è falso.
    Puoi scrivere più semplicemente:
    Codice:
    <script type="text/javascript">//Attenzione! Manca l'attributo type, è necessario per determinare che linguaggio di scripting stai usando
    var mioarray = ['filippo', 'pasquale', 'luigi'];//La sintassi abbreviata ci permette di risparmiare tempo e byte
    
    function visualizza(){
    	document.getElementById('casella').value = mioarray;//È sufficiente usare questa variabile
    }
    
    function confronta(){
    	//Hai messo un alto numero di variabili inutili, così il codice è più semplice e pulito
    	if(mioarray.indexOf(document.mioform.nome.value) != -1){
    		alert('presente');
    	}else{
    		alert('non presente');
    	}
    }
    </script>
    
    
    <form name="mioform">
    	Visualizza ciclo: <input type="text" id="casella"><br>
    	<input type="button" onclick="visualizza()" value="visualizza array">
    	<input type="text" name="nome">
    	<input type="button" onclick="confronta()" value="confronta">
    </form>

  11. #11
    Guest

    Predefinito

    ok grazie karl mi segno lo script...

    Ciao a tutti ... grazie e alla prossima!

    by max_400

Regole di scrittura

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