如何从 JavaScript 数组中删除假值?

JavaScript 数组中的假值

在 JavaScript 中,数组是一种用于存储多个值的数据结构。有时候,我们需要从数组中删除假值,以使数组中只包含有效的数据。那么什么是假值?在 JavaScript 中,以下值被视为假值:

undefined

null

false

0

NaN

空字符串("")

如果数组中包含这些值中的任何一个,我们就可以将其视为假值。

删除假值的方法

方法一:使用 filter() 方法

JavaScript 数组原生提供了 filter() 方法,我们可以利用它来过滤假值。

const arr = [1, 0, false, 2, '', 3, null, undefined, NaN];

// 使用 filter() 方法过滤假值

const filteredArr = arr.filter(Boolean);

console.log(filteredArr); // [1, 2, 3]

在这个例子中,我们首先创建了一个包含假值的数组。

const arr = [1, 0, false, 2, '', 3, null, undefined, NaN];

接下来,我们使用 filter() 方法过滤这个数组中的假值。

const filteredArr = arr.filter(Boolean);

Boolean 是一个全局函数,它将值转换为 true 或 false。当将其用作 filter() 方法的回调函数时,它将返回数组中所有真值的新数组。

因此,在上面的例子中,filteredArr 只包含数组中的所有真值。

方法二:使用 for 循环和 splice() 方法

另一种删除假值的方法是使用 for 循环和 splice() 方法。

const arr = [1, 0, false, 2, '', 3, null, undefined, NaN];

// 遍历数组并删除假值

for (let i = 0; i < arr.length; i++) {

if (!arr[i]) { // 如果 arr[i] 是假值

arr.splice(i, 1); // 从数组中删除该元素

i--; // 因为删除了一个元素,所以要将索引减一

}

}

console.log(arr); // [1, 2, 3]

在这个例子中,我们使用 for 循环遍历数组,并检查每个元素是否为假值。如果是,我们使用 splice() 方法从数组中删除该元素,并将 for 循环的索引减一以便于处理下一个元素。

虽然这种方法与 filter() 方法相比需要更多的代码,但它在更古老的浏览器和较旧的环境中可能更可靠。

结论

在本文中,我们介绍了如何从 JavaScript 数组中删除假值。我们使用了 filter() 方法和 for 循环加 splice() 方法这两种方法来实现这个目标。

无论你选择哪个方法,都可以使数组中只包含有效的数据,从而更轻松地处理数据。