2017-12-27 854 views
-3

我正在使用Console.log来标识函数的数组值。而检查控制台I看到一些地方阵列(0)存在:Javascript - Chrome控制台 - “Array(0)”是什么意思?

enter image description here

特别是,我已创建的密钥值对的阵列(见“x”和“testedElements”(相同的对象)在上面的图片底部)

当我展开“数组(0)”位于数组元素的顶部时......我不确定“数组(0)的含义是什么意思。 。它是否意味着这个元素是一个数组? enter image description here

我实际上是试图重新创建“全部菜单”在控制台图片的顶部,但我有“阵列(0)”显示在被测试元素/ x的中间...

+6

它意味着一个长度为零的数组。 – JJJ

+0

它被初始化为数组,但具有对象结构。 –

回答

1

这就是Chrome在控制台的值摘要中显示0长度数组。由于JavaScript的特性,空数组仍然可以包含字段。

var obj = {}; 
obj.array = []; 
obj.array.myField = 1; 
console.log(obj); 

这将登录控制台以下:

> {array: Array(0)} 

当我展开:

{array: Array(0)} 
    array: Array(0) 
    myField: 1 
    length: 0 
    __proto__: Array(0) 
    __proto__: Object 

这表明命名字段不是一个数组项。

如果你想要一个关联数组(具有命名索引的数组),你应该使用普通的JavaScript对象。

var obj = {}; 
obj.A = 10; 
+0

有时你必须提出最基本的问题,所以打我-4是有点挫败有问题和答案论坛学习的目的。这个答案有效。我们中的一些人正处于陡峭的学习曲线中,无论好坏。顺便说一句,这个答案很有帮助。我将初始化从“elementWithNav = Array()”更改为“elementWithNav = {}”,这解决了我的问题。感谢Wazner/Miquel。 – si2030

+0

@ si2030我没有降低你的问题,但我认为人们可能会倒下的原因是因为你的问题没有问你的实际问题。它本身对你有帮助,但它可能不会帮助其他人,因为问题是关于症状(控制台中的意外显示)而不是问题(数组与对象的命名键)。 – Wazner