如何从 Javascript 中的数组中删除空元素

要从 JavaScript 数组中删除空元素,可以使用 filter() 方法,该方法将返回一个新数组,其中元素通过回调函数的条件。

filter() 方法创建一个数组,其中填充了所有通过测试的数组元素。
要删除空值或者未定义值,请执行以下操作:

const array = [0, null, 1, "", 2, undefined, 2, , , , , 4, , 4, , 5, , 6, , , , ];
const arrFiltered = array.filter(el => {
  return el != null && el != '';
});
console.log(arrFiltered);

此函数不会删除空字符串的元素。

要删除包含空字符串 ""、0、null、NaN、undefined 和 false 的虚假元素,请将布尔构造函数传递给过滤器方法,或者在过滤器函数中返回相同的元素:

let arrFiltered = array.filter(Boolean);

其中过滤器方法调用布尔构造函数作为转换值的函数。

或者

let filtered = array.filter(function (el) {
  return el;
});

在这种情况下,过滤器方法将回调的返回值转换为布尔值。

如果数组中有空洞,我们可以使用 filter 方法传递一个返回 true 的回调来删除它们,如下所示:

let array = [0, , , 1, , , , 2, , , , 3],
  cleanArray = array.filter(function () {
    return true
  });
console.log(cleanArray); //[ 0, 1, 2, 3 ]

filter() 方法

filter() 方法构造了一个新数组,其中所有元素都通过了由提供的函数实现的测试。
此方法为数组中的每个元素调用一次提供的回调函数,并创建一个新数组,其中包含回调返回值为 true 的所有值。
未通过回调测试的数组元素将被选择退出并且不包含在新数组中。

日期:2020-06-02 22:16:24 来源:oir作者:oir