在 freecodecamp 上做到一个剔除数组中的 假值 的题目。
然后它列了6个假值:也就是 false
、 null
、0
、 ""
、undefined
和 NaN
。
此为背景
我就开始做题, 这要剔除的话, 6个值要每个都循环判断过后挑出来删掉咯。
想法很直白, 但是想想也觉得, 有点扯, 那得写多少个循环啊, 我就否决了。
绞尽脑汁想只用一个循环做出来...
随手搜了一下 “JS 假值”, 然后..
for(var i = 0; i < arr.length; i++) {
if(!arr[i]) { // !arr[i] 会将数组值转成 boolean , 然后假值都会是 false
arr.splice(i, 1);
i--;
}
}
在javaScript中,任意值都能转换为boolean值!
能转成true,称之为"真值";
能转成false,称之为"假值";
除了
- Object类型: null;
- Number类型: 0,-0;
- String类型: "";
- Undefined类型: undefined;
- NaN类型: NaN;
- Boolean: false
是"假值"!
其余都是真值!
over