我想从数组中删除所有假值。在JavaScript中,假值包括false、null、0、""(空字符串)、undefined和NaN。
function bouncer(arr) {
arr = arr.filter(function (n) {
return (n !== undefined && n !== null && n !== false && n !== 0 && n !== "" && isNaN()!=NaN); });
return arr;
}
bouncer([7, "ate", "", false, 9, NaN], "");
除了NaN测试用例外,以上所有内容都已满足。请问有人能帮我在数组中检查是否包含NaN吗?
var myFilterArray = myArray.filter((v) => new Boolean(v));
。如果传入的值为0、-0(我知道…)、null、false、NaN、undefined或空字符串,则结果为false。如果传入其他任何值,则结果为true。 - LoremIpsumBoolean
作为一个构造函数创建的是布尔包装对象(JavaScript最愚蠢的功能,完全没有任何用处),它们总是为真。相反,使用Boolean(v)
而不是new Boolean(v)
,也就是直接传递Boolean
所实现的效果,会将其转换为布尔值。 - Ry-var myFilterArray = myArray.filter((v) => Boolean(v));
,但是没有使用new
。new Boolean
会创建真值为truthy的布尔对象,这意味着filter
接受所有元素,这与var myFilterArray = myArray.filter(() => true);
相当。 - Sebastian SimonBoolean
。而且它比.filter(x=>x)
更不紧凑。 - Nikola Mihajlović