Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中空2d数组的长度是多少?_Javascript_Multidimensional Array - Fatal编程技术网

Javascript JS中空2d数组的长度是多少?

Javascript JS中空2d数组的长度是多少?,javascript,multidimensional-array,Javascript,Multidimensional Array,我正在尝试评估我的2d数组 let lines=[[]] 是否为空,所以我检查了行。length==0,返回false。因此,我在定义行的长度之后立即登录到控制台,并返回1。我想知道是否有任何方法可以区分处于空状态的行和只包含一个数组的行 我尝试记录一个空2d数组([[]])的大小,该数组是一个,第一个数组中有一些数据([[1,2,3,4]]),这两个数组都返回一个。一个空矩阵实际上应该由一个简单的[]表示。要检测您提到的案例(即[[]]),您需要执行以下操作: if (lines.lengt

我正在尝试评估我的2d数组

let lines=[[]]
是否为空,所以我检查了
行。length==0
,返回false。因此,我在定义行的长度之后立即登录到控制台,并返回1。我想知道是否有任何方法可以区分处于空状态的行和只包含一个数组的行


我尝试记录一个空2d数组(
[[]]
)的大小,该数组是一个,第一个数组中有一些数据(
[[1,2,3,4]]
),这两个数组都返回一个。

一个空矩阵实际上应该由一个简单的
[]
表示。要检测您提到的案例(即
[[]]
),您需要执行以下操作:

if (lines.length === 0 || lines[0].length === 0)

但是
[[]]
实际上是说你有一个只有一行没有列的矩阵,这是违反直觉的。空矩阵没有行,无需再多说,因此
[]

是一个包含单个元素的数组,一个空数组

如果要检查
中的元素是否为填充数组,可以通过
每个
谓词进行检查:

lines.every(elem=>!elem.length)
这将检查
的每个元素的
长度
值是否为假。更严格地说,你可以这样做

lines.every(elem=>elem instanceof Array && elem.length===0)

要检查
的每个元素是否为
数组
,其
长度
0

,您正在使用一维数组。在您的情况下,检查数组上的
length
将始终返回1,因为您希望的第一个“level”数组包含另一个数组的值。您可以使用
lines.filter(child=>child.length).length
忽略空数组。您到底期望什么?你在寻找所有长度的总和吗?第一项的长度?我可以通过检查行[0]是否等于[]来检查行是否为空吗?@devor否,因为两个相同的数组不相等(除非它们是对同一数组的引用)。例如,
console.log([]=[])//false
if (lines.flat().length === 0)