2016-01-08 153 views
0
var newArr = arr.filter(function(val){ 
    return val != false|null|0|""|undefined|NaN;}) 

我想過濾我們的值等於false,null,0,「」,undefined,NaN。 上面的代碼似乎適用於假,0和「」,我不確定是否寫入null,未定義和NaN不正確,或者如果代碼根本不應該工作。 請讓我知道,如果這只是一廂情願使用|比較多個值

+0

使用||對於邏輯或|而言是按位或 –

+2

像這樣的語法在JavaScript中絕對不可能。您可能希望將候選值放入數組中,並使用indexOf()來查看是否有任何匹配。 –

+0

明白了,非常感謝 – JiniHendrix

回答

2

您應該能夠實現由剛剛返回這是可能的,因爲本身的價值(如果您雙擊「否定」你得到一個布爾值)

var newArr = arr.filter(function(val){ return !!val }) 

所有這些值都「認爲false」在JavaScript

如果你想清楚地表明所有的選項,那麼最簡單的方法是使用一個&&(AND)運算符。

val !== false && val !== null && val !== 0 

等等...(或作爲由Jeremy銀行所提到的,使用具有共同的indexOf一個Array)

+0

這真的很酷,不知道那。 – JiniHendrix