过滤数组假值
2018-05-29 本文已影响0人
黑夜的眸
删除数组中的所有假值。
在JavaScript中,假值有
false、null、0、""、undefined 和 NaN。
知识点
- Array.filter()
语法var new_array = arr.filter(callback[, thisArg])
-
callback
用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。
返回true表示保留该元素(通过测试),false则不保留。 -
thisArg
可选。执行 callback 时的用于 this 的值。 -
返回值
一个新的通过测试的元素的集合的数组
!!!filter 不会改变原数组,它返回过滤后的新数组。
例子:
function isBigEnough(element) {
return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
function bouncer(arr) {
return arr.filter(function(value){
return (value !== false && value !== null && value !== 0 && value !=="" && value !== undefined && !isNaN(value));
});
}
bouncer([7, "ate", "", false, 9]);
有误,因为"ate"也被滤掉,isNaN()不仅仅是传入NaN时返回True,只要不是数字,都返回True。
一个简单的解法:
function bouncer(arr) {
return arr.filter(function(value){
return value;
});
}
bouncer([7, "ate", "", false, 9]);