【问题标题】:How to remove all empty array inside an array如何删除数组中的所有空数组
【发布时间】:2017-05-19 15:46:22
【问题描述】:

我有resultantarray这样的,

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

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

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


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

【问题讨论】:

  • 使用 Array.prototype.filter().
  • 可以遍历父数组,使用Array原型中提供的splice()函数。
  • var array = [["apple","banana"],[],[],[],["kiwi"],[],[]].filter((x) => { return x.length})
  • @DilipG - 答案不需要被接受为重复。通常有一些不被接受的解决方案有效。在这种情况下,有一个解决方案可以满足您在该页面上的要求

标签: javascript jquery arrays node.js


【解决方案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) !== '[]');
    

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 2019-09-05
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多