1. 使用 filter() 方法
filter() 是最常用的方法,可以根据给定的条件过滤数组元素。
去除 null、undefined、空字符串:
let arr = [1, null, 2, undefined, ”, 3];
let newArr = arr.filter(function(value) {
return value !== null && value !== undefined && value !== ”;
});
console.log(newArr); // 输出: [1, 2, 3]
使用简化版:
可以直接利用 JavaScript 的真值特性来去除所有假值(null、undefined、”、0、false、NaN):
let arr = [1, null, 2, undefined, ”, 3, 0, false, NaN];
let newArr = arr.filter(Boolean);
console.log(newArr); // 输出: [1, 2, 3]
2. 使用 reduce() 方法
通过 reduce() 方法遍历数组并构建一个新的数组,去除空值。
let arr = [1, null, 2, undefined, ”, 3];
let newArr = arr.reduce((acc, value) => {
if (value !== null && value !== undefined && value !== ”) {
acc.push(value);
}
return acc;
}, []);
console.log(newArr); // 输出: [1, 2, 3]
3. 使用 forEach() 方法
可以使用 forEach() 手动遍历数组并添加非空值到新数组中。
let arr = [1, null, 2, undefined, ”, 3];
let newArr = [];
arr.forEach(function(value) {
if (value !== null && value !== undefined && value !== ”) {
newArr.push(value);
}
});
console.log(newArr); // 输出: [1, 2, 3]
总结
- 如果只想去除空值(如
null
、undefined
和空字符串),可以使用filter()
方法来进行过滤。 - 如果想去除所有假值(如
false
、0
、NaN
),可以使用arr.filter(Boolean)
。