在JavaScript中,假值有false
、null
、0
、""
、undefined
和 NaN
。
看到这道题,觉得是正则表达式的一个扩展,或者是一个函数的扩展,没有想明白,直接看了答案
function bouncer(arr) {
// Don't show a false ID to this bouncer.
arr=arr.filter(function(val){if(val){return val;}});
return arr;
}
bouncer([7, "ate", "", false, 9]);
分析:
1、arr.filter就是从数组中筛选元素的函数,可以筛选指定值;
2、函数的核心行值得分析,初学者看不懂,我就是初学者,大概的意思如下:
i、对arr数组做筛选操作;
ii、括号里是将一个方法在一行写的方式,这种方式不用return,可直接返回值;
iii、val应该是直接带入的值,将function直接写在变量的位置上,应该就是直接调用变量的意思,因此val等于arr数组的一个元素;
iV、false
、null
、0
、""
、undefined
和 NaN,在做if判断的时候应该都是假值,因此被筛选;
V、filter自带轮询功能,可以逐个尝试每个数组中的元素;
3、上面第二部分都是我分析出来的,没有自己实际写过,记录如下,待日后学习。