如何检查嵌套数组是否为空?

vol*_*one 4 javascript arrays

如何检查嵌套数组是否为空?当没有数据时,数组看起来像这样:

const data = [ [  ] ]
Run Code Online (Sandbox Code Playgroud)

如果它有数据,它看起来像这样:

const data = [
  [{"Product": 7  }]
]
Run Code Online (Sandbox Code Playgroud)

要检查它是否为空,我正在执行以下操作,但不起作用:

if (!Array.isArray(data[0][0]) || data[0][0].length === 0) {
  return "Data is empty"
}
Run Code Online (Sandbox Code Playgroud)
  1. 我不明白的是为什么!Array.isArray(data[0][0])返回true,这意味着嵌套数组不是一个数组(这很奇怪,因为它一个数组,只是空的)。根据文档,Array.isArray([])返回 true 那么如何!Array.isArray(data[0][0]返回 true?

  2. data[0][0].length部分抛出一个错误,指出"TypeError: "data[0][0] is undefined""。为什么会这样呢?

  3. 这就引出了一个问题:如何检查嵌套数组是否为空?

Tha*_*var 5

你可以something这样做:

function checkIfEmpty(array) {
  return Array.isArray(array) && (array.length == 0 || array.every(checkIfEmpty));
}


console.log(checkIfEmpty([[{"name":"something"}]])); // false
console.log(checkIfEmpty([[]])); // true
Run Code Online (Sandbox Code Playgroud)