Blogger Information
Blog 25
fans 0
comment 0
visits 42082
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
删除数组中的null等空元素
程先生的博客
Original
3087 people have browsed it

如果需要删除所有空值(“”,null,undefined和0):

arr = arr.filter(function(e){return e});

要删除空值和换行符:

arr = arr.filter(function(e){ return e.replace(/(\r\n|\n|\r)/gm,"")});

例:

arr = ["hello",0,"",null,undefined,1,100," "]  arr.filter(function(e){return e});

返回:

["hello", 1, 100, " "]


arr.filter(function(e){ return e === 0 || e });

返回:

["hello", 0, 1, 100, " "]


建议您使用filter方法。


请记住,此方法将返回您一种新的阵列使用传递回调函数的条件的元素,例如,如果要删除null或undefined价值:


var array = [0, 1, null, 2, "", 3, undefined, 3,,,,,, 4,, 4,, 5,, 6,,,,];


var filtered = array.filter(function (el) {

  return el != null;

});


console.log(filtered);

这将取决于您认为什么是“空”的,例如,如果您处理的是字符串,上面的函数不会删除空字符串的元素。


我经常看到的一个常见模式是删除以下元素虚妄,其中包括空字符串。"", 0, NaN, null, undefined,和false.


您可以简单地传递到filter方法,Boolean构造函数,或者简单地返回筛选条件函数中的相同元素,例如:


var filtered = array.filter(Boolean);


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

这两种方式都有效,因为filter方法,在第一种情况下,调用Boolean构造函数,转换值,在第二种情况下,filter方法内部将回调的返回值隐式转换为Boolean.


如果您正在处理稀疏数组,并且试图消除“漏洞”,则只需使用filter传递返回true的回调的方法,例如:


var sparseArray = [0, , , 1, , , , , 2, , , , 3],

    cleanArray = sparseArray.filter(function () { return true });


console.log(cleanArray); // [ 0, 1, 2, 3 


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post