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

    Cercare un nome in un array

    Ciao a tutti... potete aiutarmi?

    Dovrei cercare un nome in un array, dichiarato così:

    var v = new Array("Aldo","Giovanni","Giacomo");

    per esempio digitando "Aldo" in un input type text e premendo su un input type button mi dovrebbe uscire "trovato" o "non trovato". Ho ptovato con un esempio molto facile tipo

    <script>
    var stringa = "www.pippo.it";
    var sottostringa = stringa.substr(3,5);
    document.write(sottostringa);
    </script>

    e funge, ma non fa al mio caso vero? il vettore è dichiarato diversamente...

  2. #2
    Per il momento tralasciamo le espressioni regolari per le quali ti consiglio di leggere qualcosa.


    Ti conviene iterare gli elementi dell'Aray:
    codice:
    var v = new Array("Aldo","Giovanni","Giacomo");
    
    var stringa="Aldo";
    for (i=0;i<v.length;i++){
    if (v[i].indexOf(stringa)>-1) document.write("Trovato!!!");
    }

  3. #3
    Beh... visto che fai tanto l'arrogante... forse volevi scrivere

    for (i=0;i<v.length;i++)
    {
    if (v[i].indexOf(stringa)>-1) document.write("Trovato!!!");
    }

    Comunque ho solo chiesto una informazione, è ovvio che chi chiede aiuto per la maggior parte delle volte è alle prime armi. Cmq Grazie lo stesso

  4. #4
    E dove starebbe l'arroganza in quel post? Scusate l'intromissione.. comunque l'esempio l'hai corretto nel modo giusto. Dovrebbe funzionare.

  5. #5
    Boh?!?
    Arrogante?!?
    Ho corretto...

  6. #6
    Originariamente inviato da enrico.rm
    Beh... visto che fai tanto l'arrogante...

  7. #7
    Up
    A volte, per utilizzare la stessa sintassi sono costretto a modificare le mie routine con i nomi che usate e può succedere che vi sia una svista nel procedimento del copia/incolla/modifica.
    E comunque non vedo arroganza...

  8. #8
    "Per il momento tralasciamo le espressioni regolari per le quali ti consiglio di leggere qualcosa" in italiano significa dare dell'ignorante ad una persona che già sa di essere ignorante in materia (visto che ho chiesto aiuto) ed è una frase che poteva essere evitata, comunque mi sembra che ho ringraziato, non è successo niente.... TUTTO OK H5N1_Aviaria, grazie e funge alla grande

  9. #9
    Ritorniamo alle cose serie.
    Quello che hai chiesto, enrico, si può fare anche con indexOf, un metodo degli array purtroppo supportato solo da Firefox e simili, non da IE:
    codice:
    if(["a", "b", "c"].indexOf("a")) alert("trovato!");
    Fortunatamente esiste un semplice fix ( da inserire prima di ogni altro script ) che ti consentirà di usare tale metodo con tutti i browser:
    codice:
    if (!Array.prototype.indexOf)
    {
      Array.prototype.indexOf = function(elt /*, from*/)
      {
        var len = this.length;
    
        var from = Number(arguments[1]) || 0;
        from = (from < 0)
             ? Math.ceil(from)
             : Math.floor(from);
        if (from < 0)
          from += len;
    
        for (; from < len; from++)
        {
          if (from in this &&
              this[from] === elt)
            return from;
        }
        return -1;
      };
    }
    Per quanto riguarda le regex c'è un buon tutorial che consiglio a tutti, anche agli esperti magari per un ripasso ( in inglese ).
    http://developer.mozilla.org/en/docs...ar_Expressions

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