我对 JavaScript 中的一些概念有疑问,例如(truthy, true)和(falsy, false)。
我知道 1 的类型不是,true但问题是:为什么1 == true?
ECMAScript 将 1 或“ghsagh”视为 的主要原因是true什么?
我也无法理解的含义truthy和falsy。
这种考虑有什么好处?!
我有以下数组:
const values = ['', 0, 'one', NaN, 1, 'two', 2, null, 'three', undefined, 3, false];
Run Code Online (Sandbox Code Playgroud)
我想filter()了所有的falsy值,除了为''和0。
我知道有一个有用的速记:
return values.filter(Boolean)
Run Code Online (Sandbox Code Playgroud)
但这会删除包括和在内的所有falsy值。 ''0
我尝试了以下方法:
return values.filter(value => [NaN, null, undefined, false].indexOf(value) < 0);
Run Code Online (Sandbox Code Playgroud)
它几乎是正确的......但它不会删除NaN.
const values = ['', 0, 'one', NaN, 1, 'two', 2, null, 'three', undefined, 3, false];
Run Code Online (Sandbox Code Playgroud)
有什么方法可以达到与上一个示例相同的结果,但也可以删除NaN?