[英]Why does map function return undefined but console.log logs out?
[英]Why console.log([1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7][1, 2, 3]) logs undefined?
我已經關注了這些鏈接
[1,2] + [4,5,6][1] = 1,25 在 JavaScript
為什么 [5,6,8,7][1,2] = 8 在 JavaScript 中?
但無法理解為什么以下代碼undefined
。 我的理解是[1,2,3]
將給出 3,因此[1,2,3,4,5,6,7][3]
將是 4,因此[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
將是[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][4]
即 5。但它記錄未定義。
console.log([1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7][1, 2, 3])
你在正確的軌道上。 第二組和第三組[...]
是使用括號表示法的屬性訪問,並且1, 2, 3
被視為逗號運算符,計算到列表中的最后一個條目。 所以你的代碼基本上是一樣的:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][7][3]
現在數組中的第七個數字是 8:
8[3]
並且沒有"3"
屬性。
將其分解為實際執行的兩個步驟可能會有所幫助。 首先你得到一個8
,一個數字,然后你嘗試索引它 - undefined
啊喂!
> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1, 2, 3, 4, 5, 6, 7]
8
> 8[1,2,3]
undefined
您定義一維數組a=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但在讀取a[...][...]
的值期間將其視為二維數組( a[...]
返回數組元素 - 這是數字 - 不是數組)。 這是您的代碼背后的想法錯誤。
a=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] console.log( a[0][0] );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.