- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我被要求过滤掉 array 中的 NaN, null, 0, false。
幸运的是我已经回答了这个问题。
function bouncer(arr) {
function filterer(arr) {
return arr > 0|| isNaN(arr) === true;
}
arr = arr.filter(filterer);
return arr;
}
//example input
bouncer([0, 1, 2, 3, 'ate', '', false]); //output [1, 2, 3, 'ate']
但问题是我真的不知道我是如何得出答案的,或者更确切地说,我不知道它是如何运作的。特别是在 arr > 0 上,过滤器如何知道 arr 已在 arr[1]、arr[2] 等上读取,而不使用循环在所有数组中迭代。
或者可以简单地解释一下代码是如何工作的。 [我已经尽力解释清楚了---]
最佳答案
如果要求你过滤掉数组中的NaN
, null
, 0
, false
,那么您的解决方案并不真正有效。
您的输入:
bouncer([0, 1, 2, 3, 'ate', '', false, NaN]);
将得到输出:
[1, 2, 3, 'ate', NaN]
要过滤掉所有“虚假”值,您可以简单地使用 Boolean
:
function bouncer(arr) {
return arr.filter(Boolean);
}
bouncer([0, 1, 2, 3, 'ate', '', false, NaN]);
输出:
[1, 2, 3, 'ate']
由于 Boolean
构造函数也是一个函数,它返回 true
用于“truthy”参数或 false
用于“falsy”参数。如果该值被省略或为 0
、-0
、null
、false
、NaN
、undefined
或空字符串 (""
),对象的值为 false。所有其他值,包括任何对象或字符串 "false"
,都会创建一个初始值为 true
的对象。
关于javascript - 如何过滤掉数组中的 NaN, null, 0, false (JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31925323/
我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法: /* Development Classes*/ /* Un-comment me for
使用 MySQL,我有三个表: 项目: ID name 1 "birthday party" 2 "soccer match" 3 "wine tasting evening" 4
我是一名优秀的程序员,十分优秀!