先說解決辦法:
通過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名稱不符合合法變數名的標準之外,似乎並沒有其它損失;
陣列物件,提取key值相同的為同一陣列
問題描述 乙個陣列物件,提取key 值相同的為乙個陣列。解決思路 首先確定,陣列中key 不相同的一共有多少個 可以用陣列物件去重 然後,建立乙個二維陣列,陣列的長度去重之後陣列的長度 最後,將key 相同的放在二維陣列裡面的陣列中 解決辦法 var arr1 const s new set arr...
php校驗表單提交後的值是否為數字時發現的坑
1.php中自帶的判斷是否為整數的函式一般有 is int is numeric 2.如果需要判斷整數,可以使用 is int 函式,以免發生一些字串也當成是合法數字的情況,可是注意一般表單提交過來的都是字串型別 比如 100 這樣的 3.使用is numeric 函式,當判斷 is numeric...
如何使用PHP排序key為字母 數字的陣列
你還在為如何使用php排序字母 數字的陣列而煩惱嗎?今天有個小夥伴在群裡問 如何將乙個key為字母 數字的陣列按公升序排序呢?test n1 22423,n10 22423,n2 werwerw n3 22423,n4 22423,n5 22423,n21 22423,n11 22423,希望將它排...