我有一个数组["Lorem", "", "ipsum"]
。我想从此数组中删除空字符串并获取["Lorem", "ipsum"]
.
有没有办法在不使用循环并遍历每个元素并删除它的情况下做到这一点?
如果您使用 Javascript 1.6(可能无法在 IE8 或更低版本上运行),您可以使用
arr.filter(Boolean) //filters all non-true values
例如。
console.log([0, 1, false, "", undefined, null, "Lorem"].filter(Boolean));
// [1, "Lorem"]
另一种选择是使用 jquery 的.map()函数:
var newArray = $.map( oldArray, function(v){
return v === "" ? null : v;
});
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function cleanArray(actual)
{
var newArray = new Array();
for(var i = 0; i<actual.length; i++)
{
if (actual[i])
{
newArray.push(actual[i]);
}
}
return newArray;
}
$(function()
{
var old = ["Lorem", "", "ipsum"];
var newArr = cleanArray(old);
console.log(newArr)
});
</script>
无循环
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(function()
{
var arr = ["Lorem", "", "ipsum"];
arr = $.grep(arr,function(n){
return(n);
});
console.log(arr)
});
</script>
两者都经过测试。
var arr = [ a, b, c, , e, f, , g, h ];
arr = jQuery.grep(arr, function(n){ return (n); });
arr 现在是 [a, b, c, d, e, f, g];