手机版

javascript for-in以有序的方式遍历json数据 并讨论浏览器之间的差�

时间:2021-09-21 来源:互联网 编辑:宝哥软件园 浏览:

对象本身是一个没有对象的集合,因此当使用for-in语句遍历对象的属性时,遍历的属性顺序与定义对象时不同。

了解W3C标准:

根据第三版ECMA-262(ECMAScript)中的描述,当定义对象时,遍历for-in语句的属性的顺序由属性的写入顺序决定。

参见12 . 6 . 4 ECMA-262第三版中的签收声明,了解更多关于ECMA-262第三版中签收声明的信息。

在最新的ECMA-262(ECMAScript)第五版规范中,对for-in语句的遍历机制进行了调整,没有规定属性遍历的顺序。

参见第5版ECMA-262(ECMAScript)中的12.6.4签收声明,了解更多关于签收声明的信息。

新版本对属性遍历顺序的描述与上一版本不同,这将导致在处理for-in语句时,按照ECMA-262第三版实现的JavaScript解析引擎与按照第五版实现的解析引擎不一致。

因此,在开发中,我们应该尽量避免编写依赖于对象属性顺序的代码。如下所示:

脚本js1={ ' 2 ' : { ' name ' : ' article 1 ' },' 1':{'name':' article 2' },' 3 ' : { ' name ' : ' article 3 ' } } varjs 2。{'name':' article 2' },{'name':' article 3'}]为(js1中的var I){ alert(js1[I])。姓名);}//更正为(json2中的var I){ alert(json2[I])。姓名);}/script查看浏览器中for-in代码的区别:

通过下面的代码,我们将分别介绍遍历JSON数据的JS循环。

JSON数据,例如:

{ ' options ' : '[{/'text/':/' Wangjiawan/',/'value/':/'9/'},{/' text/' :/'李家湾/',/'value/':

var数据=[{name:'a ',年龄:12},{name:'b ',年龄:11},{name:'c ',年龄:13},{ name: ' d ',年龄:14 }];for(数据中的var o){ alert(o);警报(数据[o]);警报(' text: '数据[o])。name ' value: '数据[o]。年龄);}或者。

脚本类型=' text/JavaScript ' function text(){ var JSON={ ' options ' 3360 '[{/'text/':/' Wangjiawan/',/'value/':/'9/'},{/' text/' :/'value/':/'10/'},{/' text/' :/' shajiawan/',/' value/' :/' 13/' }]' } JSON=eval(JSON . options)for(var I=0。ijson.lengthi ) { alert(json[i])。文本' ' json[i]。value) } } /script

版权声明:javascript for-in以有序的方式遍历json数据 并讨论浏览器之间的差�是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。