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

    usare operatore ternario all'interno delle condizioni di un if

    buongiorno a tutti.

    ho una funzione così definita:

    codice:
    function filtra(array, kmin, kmax, fmin, fmax, country, city){
                            
                    for(var i=0;i<array.length;i++){
                        if(array[i].km >= kmin && array[i].km <= kmax &&
                           array[i].frequenza >= fmin && array[i].frequenza <= fmax &&
                           array[i].nazione_arrivo == country &&
                           array[i].citta_arrivo == city){
    
    
                               //istruzioni
    
    
                        }
                    }
    la questione è che le ultime due condizioni, ovvero:

    codice:
       array[i].nazione_arrivo == country &&
       array[i].citta_arrivo == city
    vanno verificate solo se le variabili "country" e "city" sono diverse da null. chiaramente le due condizioni sono indipendenti, nel senso che, ad esempio, se country è null e city non lo è, va effettuato il controllo su city ma non su country.

    per risolvere il problema ho pensato di utilizzare l'operatore ternario, in questo modo:

    codice:
    for(var i=0;i<array.length;i++){
                        if(array[i].km>=kmin && array[i].km<=kmax &&
                           array[i].frequenza>=fmin && array[i].frequenza<=fmax &&
                           country != "null" ? array[i].nazione_arrivo==country : /*cosa mettere qui?*/ &&
                           city != "null" ? array[i].citta_arrivo==city : /*cosa mettere qui?*/){
                                 
                                    //istruzioni
    
    
                        }
                    }
    quindi se il contenuto di, ad esempio, "country" è diverso da null, esegue il confronto. se invece è null, devo dirgli in qualche modo di non effettuare alcun controllo. cosa scrivere dopo i due punti, per ottenere questo risultato?

    spero di essere stato chiaro, grazie a chi vorrà rispondermi

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova con : (array[i].nazione_arrivo == country || array[i].nazione_arrivo == null) && ....
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.