JS 清除数组中的空元素
在 JavaScript 中,经常会遇到需要清除数组中的空元素的情况,这些空元素可能是 null
、undefined
、空字符串 ""
或 NaN
等。在本文中,我们将介绍几种常见的方法来清除数组中的空元素。
方法一:使用 filter
方法
filter
方法可以创建一个新数组,其中包含通过指定函数测试的所有元素。我们可以利用 filter
方法,创建一个新数组,只包含非空元素。
示例代码如下:
const arr = [1, 2, null, "", 3, NaN, 4, undefined];
const cleanedArr = arr.filter(Boolean);
console.log(cleanedArr);
运行结果:
[ 1, 2, 3, 4 ]
上面的代码中,我们利用 filter(Boolean)
来过滤掉数组 arr
中的空元素,并将其赋值给 cleanedArr
。其中,Boolean
函数会将传入的参数转换成布尔值,因此会过滤掉 null
、undefined
、空字符串 ""
、NaN
等空元素。
方法二:使用 reduce
方法
reduce
方法对数组中的每个元素执行一个提供的函数,将其结果汇总为单个返回值。我们可以利用 reduce
方法,将非空元素添加到新数组中。
示例代码如下:
const arr = [1, 2, null, "", 3, NaN, 4, undefined];
const cleanedArr = arr.reduce((acc, val) => {
if (val) {
acc.push(val);
}
return acc;
}, []);
console.log(cleanedArr);
运行结果:
[ 1, 2, 3, 4 ]
上面的代码中,我们利用 reduce
方法对数组 arr
进行遍历,并将非空元素添加到 acc
中,最终返回一个新数组 cleanedArr
。
方法三:使用 for...of
循环
我们也可以使用 for...of
循环来遍历数组,将非空元素添加到新数组中。
示例代码如下:
const arr = [1, 2, null, "", 3, NaN, 4, undefined];
const cleanedArr = [];
for (const el of arr) {
if (el) {
cleanedArr.push(el);
}
}
console.log(cleanedArr);
运行结果:
[ 1, 2, 3, 4 ]
在上面的代码中,我们使用 for...of
循环遍历数组 arr
,并将非空元素添加到 cleanedArr
中。
方法四:使用 forEach
方法
forEach
方法对数组的每个元素执行一次提供的函数。我们可以利用 forEach
方法,将非空元素添加到新数组中。
示例代码如下:
const arr = [1, 2, null, "", 3, NaN, 4, undefined];
const cleanedArr = [];
arr.forEach((el) => {
if (el) {
cleanedArr.push(el);
}
});
console.log(cleanedArr);
运行结果:
[ 1, 2, 3, 4 ]
上面的代码中,我们使用 forEach
方法遍历数组 arr
,并将非空元素添加到 cleanedArr
中。
总结
本文介绍了如何在 JavaScript 中清除数组中的空元素,包括使用 filter
方法、reduce
方法、for...of
循环和 forEach
方法等几种常见方法。通过这些方法,可以方便地对数组进行清理,去除空元素,使得数组内容更加规整和准确。根据实际情况和需求,选择适合的方法来清除数组中的空元素。