首頁 >web前端 >js教程 >Vue中for in物件時如何解決屬性為非負整數的問題

Vue中for in物件時如何解決屬性為非負整數的問題

不言
不言原創
2018-07-14 15:35:351999瀏覽

這篇文章主要介紹了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的行動裝置web音樂播放器的實作

如何使用原生js來實現Ajax

以上是Vue中for in物件時如何解決屬性為非負整數的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn