相关疑难解决方法(0)

元素在"for(... in ...)"循环中排序

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 for-loop

196
推荐指数
5
解决办法
9万
查看次数

如何在保持键查找的同时保持Javascript对象/数组的顺序?

我有一些数据,我最初存储在一个通用的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"]无需循环遍历数组.

有两种方法结合使用的好方法吗?我宁愿避免为每种格式使用单独的对象,因为对象非常大(数百个元素).

javascript data-structures

57
推荐指数
1
解决办法
5万
查看次数

标签 统计

javascript ×2

data-structures ×1

for-loop ×1