📜  从数组 javascript 中删除虚假值(1)

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

从 JavaScript 数组中删除虚假值

在 JavaScript 中,虚假值指的是以下六个值之一:falsenullundefined0NaN""(空字符串)。当我们处理数据时,可能需要从数组中删除这些虚假值。本文将介绍几种方法来实现这一目的。

方法一:使用 filter() 方法

Array.prototype.filter() 方法可以过滤数组中的元素,我们可以通过将一个过滤函数作为参数来删除虚假值。

const arr = [false, null, undefined, 0, NaN, "", "hello", 42];

const filteredArr = arr.filter(Boolean);

console.log(filteredArr); // ["hello", 42]

在上面的代码中,Boolean 函数作为参数传递给了 filter() 方法。由于 Boolean 函数的特性,它会将虚假值转换为 false,真实值转换为 true。被转换为 false 的值将被过滤掉。

方法二:使用 reduce() 方法

Array.prototype.reduce() 方法可以将数组中的元素逐个处理,并将结果合并为一个值。我们可以使用这个方法来删除虚假值。

const arr = [false, null, undefined, 0, NaN, "", "hello", 42];

const reducedArr = arr.reduce((acc, cur) => {
  if (cur) {
    acc.push(cur);
  }
  return acc;
}, []);

console.log(reducedArr); // ["hello", 42]

在上面的代码中,我们传递了一个初始值为空数组的累加器给 reduce() 方法。对于每个元素,我们使用一个条件语句来判断它是否是一个真实值,如果是,就将它加入到累加器中。最终,累加器的值就是一个不包含虚假值的新数组。

方法三:使用 ES6 语法

在 ES6 中,我们可以使用展开运算符和数组解构来删除虚假值。

const arr = [false, null, undefined, 0, NaN, "", "hello", 42];

const filteredArr = [...arr].filter(Boolean);

console.log(filteredArr); // ["hello", 42]

在上面的代码中,我们首先使用展开运算符 ... 将原始数组展开为一个新数组,然后使用 filter() 方法删除虚假值。这种方法可以让我们的代码更加简洁和易读。

结论

以上方法都可以用于从 JavaScript 数组中删除虚假值。使用哪种方法取决于你的个人喜好和代码环境。在选择一个方法之后,务必测试代码的正确性。