如何在JavaScript中删除数组中的空元素?
有没有一种简单的方法,或者我需要遍历它并手动删除它们?
发布于 2012-12-10 17:25:25
简单的一行代码:
[1, false, "", undefined, 2].filter(Boolean); // [1, 2]
或者使用underscorejs.org
_.filter([1, false, "", undefined, 2], Boolean); // [1, 2]
// or even:
_.compact([1, false, "", undefined, 2]); // [1, 2]
发布于 2008-11-11 16:29:35
如果你有Javascript1.6或更高版本,你可以通过一个简单的return true
回调函数来使用Array.filter
,例如:
arr = arr.filter(function() { return true; });
因为.filter
会自动跳过原始数组中缺少的元素。
上面链接的MDN页面还包含一个很好的filter
错误检查版本,可以在不支持官方版本的JavaScript解释器中使用。
请注意,这不会删除null
条目,也不会删除具有显式undefined
值的条目,而是OP特别请求的“缺失”条目。
发布于 2011-03-27 00:57:35
干净利落的方法。
var arr = [0,1,2,"Thomas","false",false,true,null,3,4,undefined,5,"end"];
arr = arr.filter(Boolean);
// [1, 2, "Thomas", "false", true, 3, 4, 5, "end"]
https://stackoverflow.com/questions/281264
复制相似问题