Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    Ricerca elemento in array

    Ciao a tutti,
    vorrei chiedere se esiste un modo per individuare con un solo comando un elemento in un array.

    per il momento faccio così ma vorrei evitare di scorrere tutti i dati.

    for(i=0; i<nomi.length; i++) {
    if(nomi[i].toUpperCase() == form1.valoredacercare.value.toUpperCase())
    flag1=true;
    }


    Grazie
    Guidino

  2. #2
    Beh, gia' un break potrebbe evitare di scorrere tutto l'array

    ad ogni modo non ricordo se esiste una funzione tipo find ma:

    codice:
    nomi.indexOf(form1.valoredacercare.value.toUpperCase())
    ti resituisce l'indice (se c'e') dell'elemento cercato o -1 se non c'e'

    PS. Ora che ci penso mi pare sia solo per FF pero'... approfondisco

  3. #3
    COnfermo, su IE6 non va

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    Array

    e allora come si fa per evitare di scorrere tutto l'array?

    I dati sono molti quindi vorrei trovare un sistema efficiente.

    Qualche suggerimento?
    Guidino

  5. #5
    Se l'array non e' ordinato non vedo molte soluzioni.

    Semplicemente metti un break che ferma il ciclo nel caso venga trovato l'elemento cercato, cosi' eviti di scorrere tutto l'array ma ti fermi appena trovi cio' che cerchi.

    Altro consiglio per velocizzare il for: salva il "valore da cercare" in una variabile in modo che javascript vada a cercare l'input contenente il valore una volta sola.

    codice:
    var valore = form1.valoredacercare.value.toUpperCase();
    for(var i=0; i<nomi.length; i++) {
    if(nomi[i].toUpperCase() == valore){
        flag1=true;
        break;
        }
    }

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.