這篇文章主要介紹了Vue中for in物件時如何解決屬性為非負整數的問題,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
在我做一個需求的時候for in 一個對象,對象的屬性都是數字
但是我想給這個對象加一個默認的屬性跟值
原始對像是{5446:"廣州市"}。 。 。 。 。類似於下去
然後我想給我頁面展示出來的有一個預設的值就是「選擇城市」
然後我在物件裡面{"":"選擇城市"}最前面加上的
但是現實並不像我想的那樣,循環這個對象,選擇城市在最上面,而是在最下面 但是我想不通啊 明明我的對像是{"":"選擇城市",5446:"廣州市".......}這樣的
為什麼選擇城市還在列表的最下面然後我就去查資料了
然後看到vue的官網說for in 是按照Object.keys來排序的
Object.keys跟for ...in是一樣的(這句話不知道有沒有問題)
然後我就在控制台demo了一下
var a={"":"123",name:"wenwen"} for(var i in a){console.log(i)} "" name
這是顯示正常的
然後但是奇怪的事情發生了,當屬性是非負整數的時候
會發生什麼
var a={"":"123",123:"这是一个数字123",12:"这是一个数字12"} for(var i in a){console.log(i)} 123 ""
發現問題了嗎?事情並不像我想的那樣"" 123 12這樣打印
然後我就去查資料發現了
它們會先提取所有key 的parseFloat 值為非負整數的屬性, 然後根據數字順序對屬性排序首先遍歷出來,然後按照物件定義的順序遍歷餘下的所有屬性。其它瀏覽器則完全按照物件定義的順序遍歷屬性。
新版本中的屬性遍歷順序說明與早期版本不同,這將導致遵循ECMA-262 第三版規範內容實作的JavaScript 解析引擎在處理for-in 語句時,與遵循第五版規範實現的解析引擎,對屬性的遍歷順序有不一致的問題
以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網!
相關推薦:
以上是Vue中for in物件時如何解決屬性為非負整數的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!