React二維數(shù)組的幾種聲明和使用過程
React二維數(shù)組的幾種聲明和使用
React中對二維數(shù)組的聲明和使用的方式有多種,其中存在一些常見的錯誤使用情況。
例如const map=[[]] 這樣定義二維數(shù)組,本篇文章給大家解析一下react數(shù)組使用的正確方法和錯誤使用的錯誤原因。
如果我們要使用的二維數(shù)組是有默認值的,那我們可以直接在聲明時賦值,例如這樣:
const map = [[1,2],[3,4],[5,6]];
這個map變量的值是可變的,但是它的結(jié)構(gòu)是不可變的,要修改它可以這樣寫:
map[0] = [1,2,3]
但是,如果我們這樣寫就會報錯:
map[3] = [1,2,3]
因為我們對map的定義初始化的時候,按照react的語法,只要值不為空,那么數(shù)組的大小就是不可變的,但是數(shù)組的值是可變的。所以我們給map[3]賦值,這個map[3]并不存在,map只有0到2三個值,就會報錯。
但是對于map[0],[1,2]是它的一個值,這個值可以被整體替換為 [1,2,3],沒有問題。
按這個道理
如果我們這樣做也是會報數(shù)組溢出的:
map[3][4] = 1;
如果我們想要數(shù)組的大小動態(tài)可變怎么辦呢,我們可以這樣來初始化:
const map = []
這里把map首先定義為一個數(shù)組,這個時候[]內(nèi)沒有值,就代表這是一個沒有初始值的數(shù)組,其數(shù)組大小不是0,而是不確定,可以動態(tài)賦值,例如:
map[0] = []
這里我們給map加了一個0號元素,值也是一個不確定大小的未初始化數(shù)組,這個數(shù)組也可以被動態(tài)添加值:
map[0] [0] = 1;
但是我們要注意,當map[0]被賦值時,map的大小才會擴展為1,如果沒有給map[0]賦值,直接給map[1]賦值時是不能成功的:
按照這個理論
如果我們要初始化一個動態(tài)擴展的二維數(shù)組,我們應該這樣做:
const map = [];
//在使用時,動態(tài)擴展
for(var i=0;i<count;i++){
map[i] = [];
}
我們要給map定義為一個一維數(shù)組,然后動態(tài)添加數(shù)組元素作為其元素值。
注意,不能這樣寫:
const map = [[]];
看似定義了一個空的二維數(shù)組,實則不然,這個寫法的意思是定義了一個數(shù)組,數(shù)組中只有一個數(shù)組類型的元素,外層[]中的[]代表了一個元素,相當于給了外層數(shù)組初始值,這個數(shù)組就不是動態(tài)可擴展的了,而是外層只能有一個元素,這時map[1]就是不存在也不可賦值的。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
react源碼層分析協(xié)調(diào)與調(diào)度
本文主要介紹了深入理解React協(xié)調(diào)與調(diào)度(Scheduler)原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-10-10
詳解React中的useMemo和useCallback的區(qū)別
React中的useMemo和useCallback是兩個重要的Hooks。常常被用于優(yōu)化組件的性能。雖然這兩個Hooks看起來很相似,但它們彼此之間還是有很大的區(qū)別的,隨著小編一起來學習吧2023-04-04
React實現(xiàn)PDF預覽功能與終極優(yōu)化
在前端開發(fā)中,PDF 預覽是個常見需求,本文主要來帶大家認識一個基于 react-pdf 的自定義 PDF 預覽組件 PDFView,感興趣的小伙伴可以了解下2025-05-05
react實現(xiàn)頭部導航,選中狀態(tài)底部出現(xiàn)藍色條塊問題
這篇文章主要介紹了react實現(xiàn)頭部導航,選中狀態(tài)底部出現(xiàn)藍色條塊問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
React關(guān)于antd table中select的設(shè)值更新問題
這篇文章主要介紹了React關(guān)于antd table中select的設(shè)值更新問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

