2017-12-27 837 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