📅  最后修改于: 2023-12-03 15:06:41.251000             🧑  作者: Mango
在 JavaScript 中,虚假值是指像 false、null、undefined、0、NaN 以及 "" (空字符串) 等的值。这些值经常出现在数组中,因此我们需要一种简单的方法来过滤它们。
filter()
方法JavaScript 中 filter()
方法用于创建一个被过滤后的新数组,该数组包含符合条件的所有元素。在这里,我们可以使用 filter()
方法来过滤掉虚假值。
const arr = [1, null, undefined, false, true, 0, "", NaN, 2, 3];
const filteredArr = arr.filter(Boolean);
console.log(filteredArr); // [1, true, 2, 3]
在上面的例子中,我们将数组 arr
中的所有虚假值过滤掉。Boolean
函数是一个构造函数,将每一个元素作为参数传入,返回一个布尔值。在这个例子中,Boolean
函数会将所有虚假值转换成 false
,而其他的都转换成 true
。filter()
方法会根据这个布尔值来过滤数组。
reduce()
方法JavaScript 中 reduce()
方法用于对数组中的每个元素执行一个 reducer 函数 (操作),最终将其转化为单个值。在这里,我们可以使用 reduce()
方法来过滤掉虚假值。
const arr = [1, null, undefined, false, true, 0, "", NaN, 2, 3];
const filteredArr = arr.reduce((acc, cur) => {
if (cur) {
acc.push(cur);
}
return acc;
}, []);
console.log(filteredArr); // [1, true, 2, 3]
在上面的例子中,我们使用 reduce()
方法将数组中的每个元素挨个遍历。如果当前元素是一个虚假值,则不会将其加入 acc
(累计的结果)数组中。否则,会将当前元素加入数组中。
在 JavaScript 中,我们使用 filter()
和 reduce()
方法可以非常简单的过滤掉数组中的虚假值。这些函数都可以根据条件遍历数组并返回一个新数组或单个值。这两种方法都可以非常简单地过滤掉虚假值,让我们的代码更加清晰简洁。