如何删除数组中的所有空数组

时间:2017-01-05 07:19:26

标签: javascript jquery arrays node.js

我有resultant array这样,

[["apple","banana"],[],[],[],["kiwi"],[],[]]

如何删除所有空的[] array,以便我的resultant array看起来像这样:

[["apple","banana"],["kiwi"]];


var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array

4 个答案:

答案 0 :(得分:7)

使用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);

答案 1 :(得分:2)

使用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));

答案 2 :(得分:2)

@kukuz回答的ES5兼容代码。

var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array

var result =  array.filter(function(x){return x.length});
console.log(result);

答案 3 :(得分:1)

使用以下代码:

var newArray = array.filter(value => JSON.stringify(value) !== '[]');