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

Я пытаюсь отфильтровать наши значения, равные false, null, 0, "", undefined, NaN. Код, как представляется, работает для false, 0 и "", и я не уверен, что я пишу null, undefined и 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 

и так далее ... (или как было упомянуто Джереми Банки, использовать массив вместе с IndexOf)

+0

это действительно круто, не знаю что. – JiniHendrix

Смежные вопросы