从数组中移除所有假值(falsy values)。JavaScript 中的假值有 false
、null
、0
、""
、undefined
、NaN
。提示:可以考虑将每个值都转换为布尔值(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
变成false
,false
变成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]);
原文:https://www.cnblogs.com/icyyyy/p/14775412.html