要从 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