Rumah  >  Artikel  >  hujung hadapan web  >  Vue中for in对象时如何解决属性为非负整数的问题

Vue中for in对象时如何解决属性为非负整数的问题

不言
不言asal
2018-07-14 15:35:351977semak imbas

这篇文章主要介绍了关于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

Atas ialah kandungan terperinci Vue中for in对象时如何解决属性为非负整数的问题. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn