Javascript检查空数组中的空数组?

时间:2014-07-30 18:11:00

标签: javascript

我有一个变量

var test = [[[]]]

我想知道是否有一种简单的方法可以看出它是否为空。虽然它在技术上不是空的,但对我的实例来说它是空的。有没有办法检查这个?

2 个答案:

答案 0 :(得分:2)

你可以深度压扁阵列:

var flatten = function(xs) {
  var out = [].concat.apply([], xs)
  return xs.some(Array.isArray) ? flatten(out) : out
}

var isEmpty = function(xs) {
  return !flatten(xs).length
}

isEmpty([[[]]]) //=> true
isEmpty([[[]], [[]]]) //=> true

答案 1 :(得分:0)

使用Array.prototype.filter

var arr = [[], [], []];
var isEmpty = arr.filter(function (arr) { return arr.length != 0; }).length === 0;
// isEmpty == true

var arr = [[], [], [1,2,3]];
var isEmpty = arr.filter(function (arr) { return arr.length != 0; }).length === 0;
// isEmpty == false