如何删除数组中的所有空数组
Posted
技术标签:
【中文标题】如何删除数组中的所有空数组【英文标题】:How to remove all empty array inside an array 【发布时间】:2017-05-19 15:46:22 【问题描述】:我有resultant
array
这样的,
[["apple","banana"],[],[],[],["kiwi"],[],[]]
如何删除所有空的 []
array
以便我的 resultant
array
看起来像这样:
[["apple","banana"],["kiwi"]];
var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array
【问题讨论】:
使用 Array.prototype.filter(). 可以遍历父数组,使用Array原型中提供的splice()
函数。
How can I remove empty object in from an array in JS的可能重复
var array = [["apple","banana"],[],[],[],["kiwi"],[],[]].filter((x) => return x.length)
@DilipG - 答案不需要被接受为重复。通常有一些不被接受的解决方案有效。在这种情况下,有一个解决方案可以满足您在该页面上的要求
【参考方案1】:
使用Array.prototype.filter
过滤掉空数组 - 参见下面的演示:
var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array
var result = array.filter(e => e.length);
console.log(result);
在 ES5 中,可以省略上面使用的箭头函数:
var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array
var result = array.filter(function(e)
return e.length;
);
console.log(result);
【讨论】:
不错的解决方案。我真的希望更多的人使用这种语法进行编码——这将使所有 javascript 调试变得更加容易(并且页面加载时间更快)【参考方案2】:@kukuz 答案的 ES5 兼容代码。
var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array
var result = array.filter(function(x)return x.length);
console.log(result);
【讨论】:
对不起!没注意到@Jai【参考方案3】:使用 Array.prototype.filter() 得到一个新的过滤数组:
var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];
var newArr = array.filter(function(obj)
return obj[0] !== undefined;
);
console.log(JSON.stringify(newArr, 0, 0));
【讨论】:
【参考方案4】:使用以下代码:
var newArray = array.filter(value => JSON.stringify(value) !== '[]');
【讨论】:
以上是关于如何删除数组中的所有空数组的主要内容,如果未能解决你的问题,请参考以下文章