Javascript中的"for ... in"循环是否按照声明的顺序循环遍历hashtables/elements?是否有一个浏览器没有按顺序执行?
我想要使用的对象将被声明一次,永远不会被修改.
假设我有:
var myObject = { A: "Hello", B: "World" };
Run Code Online (Sandbox Code Playgroud)
我进一步使用它们:
for (var item in myObject) alert(item + " : " + myObject[item]);
Run Code Online (Sandbox Code Playgroud)
在大多数体面的浏览器中,我可以期待'A:'你好''总是先来'B:'世界"吗?
我有一些数据,我最初存储在一个通用的Javascript对象中,ID作为键:
{
"7": {"id":"7","name":"Hello"},
"3": {"id":"3","name":"World"},
...
}
Run Code Online (Sandbox Code Playgroud)
但是,我发现浏览器在循环浏览时并不保证特定的对象顺序,因此在上面的"3"中会出现在"7"之前.我切换到使用这样的数组格式:
[
{"id":"7","name":"Hello"},
{"id":"3","name":"World"},
...
]
Run Code Online (Sandbox Code Playgroud)
现在,我可以按正确的顺序循环,但不能快速查找,例如,data["3"]
无需循环遍历数组.
有两种方法结合使用的好方法吗?我宁愿避免为每种格式使用单独的对象,因为对象非常大(数百个元素).