📜  以非常简单的方式从数组中过滤出虚假值! - Javascript(1)

📅  最后修改于: 2023-12-03 15:06:41.251000             🧑  作者: Mango

以非常简单的方式从数组中过滤出虚假值! - JavaScript

在 JavaScript 中,虚假值是指像 false、null、undefined、0、NaN 以及 "" (空字符串) 等的值。这些值经常出现在数组中,因此我们需要一种简单的方法来过滤它们。

方法1:使用 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,而其他的都转换成 truefilter() 方法会根据这个布尔值来过滤数组。

方法2:使用 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() 方法可以非常简单的过滤掉数组中的虚假值。这些函数都可以根据条件遍历数组并返回一个新数组或单个值。这两种方法都可以非常简单地过滤掉虚假值,让我们的代码更加清晰简洁。