📅  最后修改于: 2023-12-03 15:36:18.522000             🧑  作者: Mango
在 JavaScript 中,虚假值指的是以下六个值之一:false
、null
、undefined
、0
、NaN
、""
(空字符串)。当我们处理数据时,可能需要从数组中删除这些虚假值。本文将介绍几种方法来实现这一目的。
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
的值将被过滤掉。
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 中,我们可以使用展开运算符和数组解构来删除虚假值。
const arr = [false, null, undefined, 0, NaN, "", "hello", 42];
const filteredArr = [...arr].filter(Boolean);
console.log(filteredArr); // ["hello", 42]
在上面的代码中,我们首先使用展开运算符 ...
将原始数组展开为一个新数组,然后使用 filter()
方法删除虚假值。这种方法可以让我们的代码更加简洁和易读。
以上方法都可以用于从 JavaScript 数组中删除虚假值。使用哪种方法取决于你的个人喜好和代码环境。在选择一个方法之后,务必测试代码的正确性。