2012-06-12 43 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