2015-07-30 16 views
5

Lo so, so che ci devono essere alcuni thread che coprono questo argomento. Ma ho usato la ricerca e non ho ottenuto la risposta adatta alle mie esigenze. Eccoci quindi:distinguere tra 0 e ""

Voglio controllare una condizione "se", nel senso che se la variabile ha valori come "null" o "undefined" o "" o "" allora voglio assegnare il valore variabile come "N/A "& se value è zero (0) non dovrebbe assegnare" N/A "a quella variabile.

Ma il problema è qui che "" o null == 0 è vero,

Quindi, per favore mi aiuti ad uscire questo problema, Grazie in anticipo

+0

if (currentValue) {// fa qualcosa} else if (currentValue! = 0) { if ((currentValue == "") || (! CurrentValue)) {currentValue = "N/A"; } –

risposta

1

È questo di cosa stai parlando? "===" è un rigoroso operatore di confronto che non cambierà i tipi di dati.

if (val === undefined || val === null || val === ""){ 
    // do something 
}else{ 
    // do something else 
} 
5

Usa === per i confronti in JavaScript ,

// type doesn't match gives false 
0 === null; // false 
0 === undefined; // false 
0 === ''; // false 
0 === false; // false 
0 === "0"; // false 

// type matches 
0 === 0; // true 
+0

grazie per la tua ans, ma ho bisogno di una condizione con il mio requisito –

+2

@MaheshKalyankar quindi usa '===' in un'istruzione 'if'? – Pointy

+3

@MaheshKalyankar - Non è il tuo requisito di distinguere tra '0' e' "" ', che è esattamente ciò che fa il codice in questa risposta. – Quentin

0

È questo quello che cerchi? Solo un singolo banco di prova dovrebbe essere sufficiente ...

if ($var !== 0) $var = 'N/A'; 
1

In JavaScript, nullo, non definito, "" (stringa vuota), falso, 0, NaN sono valori falsy. La condizione che verifica una variabile con uno qualsiasi di questi valori risulta falsa.

Nel tuo caso si può semplicemente verificare se la variabile è falsy o meno e se è necessario escludere 0 da questa condizione, è possibile aggiungere un ulteriore condizione di controllo per se la variabile! == 0.

per esempio in il codice sottostante dice 'a' è la variabile che devi controllare rispetto a tutti i valori di falsy tranne 0, quindi puoi controllare se (a! == 0) & &! a (non falsi) e assegnarli a N/A altro lascia 'a' così com'è.

riga 1: var a = 0; riga 2: a = (a! == 0 & &! A)? "N/A": a;

Spero che il codice sopra possa essere d'aiuto.