function bouncer(arr) {
var array = [false, null, 0, NaN, undefined, ""];
var result = [];
for (var i = 0; i < arr.length; i++) {
if (array.indexOf(arr[i]) === -1) {
result.push(arr[i]);
}
}
return result;
}
ex : bouncer([7, "ate", "", false, 9]) should return [7, "ate", 9].
Привет всем, Я пытаюсь удалить все ложно значения, которые во входном массиве, но как-то, когда я бегу bouncer([false,null, 0, NaN, undefined, ""]);
я [NaN]
в качестве возвращаемого значения в то время как я ожидал пустой массив. Кто-нибудь знает, почему функция возвращает ложные значения?Как метод indexOf возвращает ложное значение?
'NaN' не равен самому себе. – tkausl
Это повторяющийся вопрос: http://stackoverflow.com/questions/32906887/remove-all-falsy-values-from-an-array – HenryDev
Фактически 'if (!! arr [i])' работает даже для NaN –