如果此级别长度等于undefined
,我可以知道为什么如果多维javascript数组中的第二级条目返回1
?
示例:
arr = Array(
Array(1)
)
以下将返回这个不太可能的结果:undefined
,而它假设为1
(或者至少是我期望的结果)
console.log(arr[0][0])
但是当我不仅仅是那个级别(length>1
)的记录时,就像:
arr = Array(
Array(1,2)
)
然后尝试:console.log(arr[0][0])
,这次返回1
对此问题的任何解释或为什么会发生这种情况将不胜感激
感谢
答案 0 :(得分:0)
您应该参考documentation of the Array
constructor:
<强>
arrayLength
强>
如果传递给Array
构造函数的唯一参数是0到232-1(含)之间的整数,则返回一个新的JavaScript数组,length
设置为该数字。
Array(1)
不会创建包含元素1
的数组,它会创建一个 length 1的数组,其中包含一个元素:{{1 }}
要使用不太模糊的构造函数,请使用数组文字:
undefined
这是一个包含一个数组的数组,其中包含值[[1]]
。
答案 1 :(得分:0)
数组语法
1
来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
的语法部分看起来如果Array的值是一个整数,那么它被解释为长度,否则它被解释为内容
这就是为什么你在第一个案例中有一个空的二维数组...
希望这有助于...欢呼