var triangle = {a:1, b:2, c:3}; for (var x in triangle) { console.log(x) }
这样的话,我是不是没法保证每次输出都是:
a b c
在不修改triangle = {a:1, b:2, c:3}的情况下,我如果能够顺序的读取其中的属性?
triangle = {a:1, b:2, c:3}
小伙看你根骨奇佳,潜力无限,来学PHP伐。
这篇文章有详细介绍:SJ9011: Chrome Opera 中 for-in 语句遍历出对象属性的顺序与定义的不同
文章最后给出了解决方案:
for-in 语句无法保证遍历顺序,应尽量避免编写依赖对象属性顺序的代码。如果想顺序遍历一组数据,请使用数组并使用 for 语句遍历。 如果想按照定义的次序遍历对象属性,请参考本文针对各浏览器编写特殊代码。
名言:“ASSUME = ASS U & ME”。
即,永远不要把你的程序建立在任何的假设上。假设就是把你和我都当成了ASS。
字典是一种有对应无顺序的结构。如果你希望输出依赖顺序,就不要用无序的数据结构。
取出所有的索引(key)组成一个数组,将这个数组明确的按字母序排序。然后foreach遍历这个数组,就可以按索引的字典顺序,逐个读取记录值了。
先把所有 key 取出来,比如用 Object.keys()
var keys = Object.keys(triangle);
然后再把 keys 数组排序,然后再遍历这个数组。
Jquery的each方法可以实现这样要求。
这篇文章有详细介绍:SJ9011: Chrome Opera 中 for-in 语句遍历出对象属性的顺序与定义的不同
文章最后给出了解决方案:
for-in 语句无法保证遍历顺序,应尽量避免编写依赖对象属性顺序的代码。如果想顺序遍历一组数据,请使用数组并使用 for 语句遍历。 如果想按照定义的次序遍历对象属性,请参考本文针对各浏览器编写特殊代码。
名言:“ASSUME = ASS U & ME”。
即,永远不要把你的程序建立在任何的假设上。假设就是把你和我都当成了ASS。
字典是一种有对应无顺序的结构。如果你希望输出依赖顺序,就不要用无序的数据结构。
取出所有的索引(key)组成一个数组,将这个数组明确的按字母序排序。然后foreach遍历这个数组,就可以按索引的字典顺序,逐个读取记录值了。
先把所有 key 取出来,比如用 Object.keys()
然后再把 keys 数组排序,然后再遍历这个数组。
Jquery的each方法可以实现这样要求。