Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    vedere se ci son numeri maggiori di zero in un array

    Ciao a tutti! devo fare la ricerca in un array, mi basta solo sapere se in un certo array c'è un numero maggiore di zero... forse ci son più strade, siccome saranno array grossi vorrei sapere qual'è il metodo più performante in velocità, grazie

  2. #2
    codice:
    for(c=0;c<array.length;c++){
    if(array[c]>0){
    //CODICE
    }else{
    //CODICE
    }}

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Se ti basta sapere che ce ne sia almeno uno e t'interessa creare una variabile del tipo esiste = true/false...

    codice:
    var aArrayEsempio = [-4, -5, 0, -11, 3, -7, 4, 6];
    
    for (var iArrIndx = 0, nArrLength = aArrayEsempio.length, bExists = false; iArrIndx < nArrLength; iArrIndx++) {
    	if (aArrayEsempio[iArrIndx] > 0) { bExists = true; break; }
    }
    
    alert(bExists);
    Se invece l'informazione sull'esistenza non te la devi portare dietro e devi solamente eseguire delle istruzioni una tantum, questo è sicuramente il metodo più performante:

    codice:
    var aArrayEsempio = [-4, -5, 0, -11, 3, -7, 4, 6];
    
    for (var iArrIndx = 0, nArrLength = aArrayEsempio.length; iArrIndx < nArrLength; iArrIndx++) {
    	if (aArrayEsempio[iArrIndx] > 0) {
    		//FAI QUALCOSA
    		break;
    	}
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    no a me basta sapere che ci sia un valore maggiore di zero nell'array, quindi il primo metodo? si effettivamente non mi sembra affatto male, appena ne trova uno esce, così da non fare cose di troppo

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    ma non sarebbe meglio così:
    (ho aggiunto && bExists==false)
    o già prima se trovava un numero usciva?

    Originariamente inviato da carlomarx
    codice:
    var aArrayEsempio = [-4, -5, 0, -11, 3, -7, 4, 6];
    
    for (var iArrIndx = 0, nArrLength = aArrayEsempio.length, bExists = false; iArrIndx < nArrLength && bExists==false; iArrIndx++) {
    	if (aArrayEsempio[iArrIndx] > 0) { bExists = true; break; }
    }
    
    alert(bExists);

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da iacoposk8
    ma non sarebbe meglio così:
    (ho aggiunto && bExists==false)
    o già prima se trovava un numero usciva?
    No! Gli fai fare un'operazione in più per ogni ciclo! Già nel mio esempio appena trova un numero > 0 esce.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    ok! perfetto! allora grazie

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Se ti piacciono le scritture un po' stravaganti puoi utilizzare questa forma qua:

    codice:
    var aArrayEsempio = [-4, -5, 0, -11, 3, -7, 4, 6];
    
    for (var iArrIndx = 0, nArrLength = aArrayEsempio.length, bExists; !(bExists = aArrayEsempio[iArrIndx] > 0) && iArrIndx < nArrLength; iArrIndx++) { }
    
    alert(bExists);
    ...sicuramente più sintetica. A differenza della precedente però questa modifica a ogni ciclo la variabile bExists, scrivendoci un'infinità di volte "false" tranne l'ultima volta, in cui eventualmente ci scrive "true".

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.