對象key值為數字時的處理


先說解決辦法:

通過a[key]的方式獲取。

具體場景是這樣的:

有一個對象的key是數字組成的,這時候使用a.b的形式就不能獲取到相應的value值,

如下圖:

a.'111'會報錯。

特別說明:

a['111']和a[111]兩種寫法都是一樣的,沒有什么區別,此用法與數組用下標訪問是相同的。

請注意,如果使用方括號運算符,鍵名不為數值的時候,必須放在引號里面,否則會被當作變量處理。但是,數字鍵可以不加引號,因為會被當作字符串處理。

當對象的key為一個變量時,並且使用在循環中,那我們可以通過data['key']這種方式來動態生成對象,eg:

總結:

1.對象的key一般應使用合法的變量名(字母或下划線開頭的包括字母、下划線和數字的字符串) ,這種情況下通過a.key 或者 a['key']的方式都可以獲取到相應的value值。

2.當特殊場景key為數字的情況下,只能通過a['key']的方式來獲取相應的value值。

    如當建立一個與數據庫中id一一對應的map對象的時候, 

        可直接用id的數值做key,雖然你可以給它加上一個字母前綴來讓它符合合法的變量名的標准, 

        並讓它的數據能通過data.key的方式訪問, 

        但如果數據量非常大的話, 

        為每個id都加一個前綴,+字符連接運算也是要消耗性能的, 

        特別是在很少需要采用data.key方式去訪問屬性的情況下, 

        那么可以拋棄此調用方式,直接用數字做key也未嘗不可, 

        除了key名稱不符合合法變量名的標准之外,似乎並沒有其它損失;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM