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