2012-06-12 24 views
0
// mechanics 
MECHANICS_ISOLATION : 1, 
MECHANICS_NA : 2, 
MECHANICS_COMPOUND : 3, 

// mechanics 
Exercise.mechanics = {}; 
Exercise.mechanics[Exercise.MECHANICS_COMPOUND] = 'Compound'; 
Exercise.mechanics[Exercise.MECHANICS_ISOLATION] = 'Isolation'; 
Exercise.mechanics[Exercise.MECHANICS_NA] = 'N/A'; 

当我通过Exercise.mechanics循环时,按键出现排序。我怎样才能让未排序的键循环?Javascript对象自动分类

谢谢!

+1

为了什么? [DEMO](http://jsfiddle.net/mplungjan/4L8r8/) – mplungjan

回答

2

散列表中的键是不可靠的。给你一个订单的钥匙。例如,将你的密钥放入一个数组并迭代密钥。

var keys = [MECHANICS_ISOLATION, MECHANICS_NA, MECHANICS_COMPOUND]; 
for (var i = 0; i < keys.length; i++) { 
    console.log(Exercise.mechanics[keys[i]]); 
} 
+0

我一直听到,但我从来没有见过一个没有获得FiFo – mplungjan

+0

的例子这取决于实现。我们应该遵循hashmap的合同。也许大多数hashmaps是FIFO,我们仍然不应该依赖它,因为它不是合同 - 它可能很容易在未来破裂。 –

-1

您期望的订单是多少?我得到外汇和IE

3:Compound 
1:Isolation 
2:N/A 

他们未下令使用此代码DEMO

Exercise = { 
// mechanics 
MECHANICS_ISOLATION : 1, 
MECHANICS_NA : 2, 
MECHANICS_COMPOUND : 3, 
    } 

// mechanics 
Exercise.mechanics = {}; 
Exercise.mechanics[Exercise.MECHANICS_COMPOUND] = 'Compound'; 
Exercise.mechanics[Exercise.MECHANICS_ISOLATION] = 'Isolation'; 
Exercise.mechanics[Exercise.MECHANICS_NA] = 'N/A'; 

for (ex in Exercise.mechanics) document.write("<hr>"+ex+":"+Exercise.mechanics[ex]) 
+0

必须是镀铬物:S – Garrett