2017-01-10 1 views
0
function boo(arr) 
{ 
for(var i=0;i<arr.length;i++) 
{ 
    var bob = new Boolean(arr[i]); 
    if(bob === false) 
    { 

    console.log(arr[i]); 

    } 

} 
} 
console.log(boo([0,"how",89,false])); 

Ich möchte alle falschen Werte wie false, null, undefined usw. von einem Array mit Boolean Object überprüfen und es ausdrucken. Wie kann ich es mit Boolean Object? Wie kann ich mehrere Werte hinzufügen, um zu überprüfen, ob es true oder false in Boolean Object ist?Warum bekomme ich undefiniert mit Boolean Objekt?

+0

Sie müssen verwenden '!!' -Operator – Legends

+0

@Legends: Es gibt keine solche Sache. Das ist der Operator '!', Der zweimal angewendet wurde. –

+0

natürlich ........ – Legends

Antwort

2

Sie können Objekte so in Javascript vergleichen. new Boolean(...) === false wird immer auf false ausgewertet.

MDN has a good warning auf der Sache:

Sie die primitiven Boolesche Werte wahr und falsch mit den wahren und falschen Werten des Boolean-Objekts nicht verwirren.

Zum Beispiel (bei value = arr[i]), wenn Sie sehen müssen, wenn etwas truthy nur !!value verwenden. Verwenden Sie für falsch, !value. Wenn Sie sehen müssen, ob etwas wirklich true ist, verwenden Sie value === true, ebenfalls für false, aber nicht eine Instanz.

+0

Könnte klarstellen, dass "Wert" hier ist "arr [i]", nicht "bob". –

+0

Danke, es hat geklappt:) Kannst du mir sagen wann wir es benutzen? und !! Ich habe es vorher nie benutzt und weiß nicht viel darüber. –

+0

@caycospete '!' Ist der NOT-Operator, der irgendeinen falschen Wert annimmt und ihn "wahr" macht (und irgendeinen truthigen Wert und macht ihn "falsch"). '!!' ist nur 2 '!' und es blendet den Wert um, wodurch der Wert effektiv in einen booleschen Wert umgewandelt wird. –

Verwandte Themen