遍历JavaScript json是按照顺序吗
var jsons = {}
for(var i = 0; i < 12; i++){
var tt = {};
tt.val = i;
tt.key = "dsfs";
jsons[ i ] = tt;
}
for(var k in jsons){
console.log(jsons[ k ])
}
###遍历结果 应该是无序的啊 为什么
{ val: 0, key: 'dsfs' }
{ val: 1, key: 'dsfs' }
{ val: 2, key: 'dsfs' }
{ val: 3, key: 'dsfs' }
{ val: 4, key: 'dsfs' }
{ val: 5, key: 'dsfs' }
{ val: 6, key: 'dsfs' }
{ val: 7, key: 'dsfs' }
{ val: 8, key: 'dsfs' }
{ val: 9, key: 'dsfs' }
{ val: 10, key: 'dsfs' }
{ val: 11, key: 'dsfs' }
正常来说是没有顺序的,javascript遍历表是按照顺序遍历的????
9 回复
不要相信你看到的,遍历JSON顺序一定是不靠谱的
你遍历的应该是一个数组吧
@liujavamail 不是数组jsons是 {} 而不是 []
@semicoyoung 为什么每次都是按照你存取的顺序的
##还有了解的吗
一般的js引擎实现都是按key的定义顺序,但是js语言标准里并没有规定要按什么顺序来,所以最好不要依赖keys的顺序,当然,如果你只在v8下用应该也没问题
来自酷炫的 CNodeMD
@iyuq 只用 node 应该没啥问题吧
目前版本没有问题,如果你非要依赖keys的定义顺序,可以自己维护一个keys的数组到obj里,没次定义新属性的同时往keys数组里push相应的key。
来自酷炫的 CNodeMD
@iyuq 好的谢谢啦