考慮對象:如何使`Object.keys`尊重對象中'聲明'鍵的順序?
var opts = {
'all': 'All',
0: 'Some option',
1: 'Cookies',
};
Object.keys(opts)
返回此:
["0", "1", "all"]
當我期待這樣的:
["all", "0", "1"] // The order in which the keys are 'declared' in the obj
我該如何迭代它們在對象中出現的順序?
謝謝。
有一個在對象沒有順序,因此期待以某種順序總是會失敗 – adeneo
[Object.keys](https://developer.mozilla.org/en-US/docs/Web/JavaScript/引用/ Global_Objects/Object/keys)..'與for ... in循環提供的順序相同 - - 'for..in語句以任意順序迭代對象的可枚舉屬性,' –
[Spec] (http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.3.14) - '如果一個實現爲for-in語句定義了特定的枚舉順序,那麼相同的枚舉順序必須是用於此算法的第5步.' - 訂單是可選的 –