过滤数组中的假值

从数组中移除所有假值(falsy values)。JavaScript 中的假值有 falsenull0""undefinedNaN。提示:可以考虑将每个值都转换为布尔值(boolean)

 1 function bouncer(arr) {
 2   let res =[];
 3   for(let i = 0;i<arr.length;i++){
 4     if(Boolean(arr[i])){
 5       res.push(arr[i]);
 6     }
 7   }
 8   return res;
 9 }
10 bouncer([7, "ate", "", false, 9]);

1. 取反运算符(!)是一个感叹号,用于将布尔值变为相反值,即true变成falsefalse变成true。对于非布尔值,取反运算符会将其转为布尔值。如果对一个值连续做两次取反运算,等于将其转为对应的布尔值,与Boolean函数的作用相同。这是一种常用的类型转换的写法

1 !!x
2 // 等同于
3 Boolean(x)
 1 function bouncer(arr) {
 2   let res =[];
 3   for(let i = 0;i<arr.length;i++){
 4     if(!!arr[i]){
 5       res.push(arr[i]);
 6     }
 7   }
 8   return res;
 9 }
10 bouncer([7, "ate", "", false, 9]);

 2. Array.prototype.filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素

1 function bouncer(arr) {
2   return arr.filter(Boolean);
3 }
4 bouncer([7, "ate", "", false, 9]);

 

posted @ 2021-05-16 23:51  icyyyy  阅读(223)  评论(0)    收藏  举报