簡體   English   中英

如何在 javascript 中讀出二維數組的內部數組長度

[英]How to read out the inner array length of a 2 dimensional array in javascript

我需要在我的應用程序中檢測二維數組中的內部數組的長度。 但不幸的是,它總是引發“TypeError:無法讀取未定義的屬性'長度'”錯誤。 有沒有人檢測到錯誤? 謝謝一堆

這是名為 currentNodeData 的 2d 數組(我通過以下命令得到它 --> console.log(currentNodeData)):

在此處輸入圖像描述

這就是我想要接收內部數組長度的方式,它應該是 6:

console.log(currentNodeData[0].length);

這是錯誤:

在此處輸入圖像描述

在你的情況下currentNodeData是什么?

讓我們來復習:

所以我們在數組里面有一個數組。

讓我們命名它:

const innerArray = [{id:1}, {id: 2}, {id: 3}, {id: 4}]
const outer = [innerArray];

外部數組將只有一個內部數組? 如果是:我們可以做下一件事:

outer[0].length // 4

或者我們可以使用flat()

outer.flat().length // 4

 const innerArray = [{id:1}, {id: 2}, {id: 3}, {id: 4}] const outer = [innerArray]; console.log(outer[0].length); console.log(outer.flat().length);

此外,我們應該了解您的變量可以異步分配,在這種情況下,當您嘗試獲取長度時,您的變量可能為空。

讓我們嘗試重現:

在這個例子中,我們可以看到一個錯誤,因為尚未分配數據

 let outer = []; setTimeout(() => {outer = [[{id:1}]]}, 1000) console.log(outer[0].length)

在這種情況下,我們應該添加Optional chaining operator?. 並且第一次我們會看到未定義,當分配數據時我們應該再次檢查它,我們會看到長度

 let outer = []; setTimeout(() => {outer = [[{id:1}]]}, 1000) console.log(outer[0]?.length) setTimeout(() => {console.log(outer[0]?.length)}, 1000)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM