Tidak ada cara ringkas untuk secara langsung memanipulasi "kunci" dari objek Javascript. Ini tidak benar-benar dirancang untuk itu. Apakah Anda memiliki kebebasan untuk menempatkan data Anda di sesuatu yang lebih baik daripada objek biasa (atau Array, seperti yang disarankan kode sampel Anda)?
Jika demikian, dan jika pertanyaan Anda dapat dirumuskan ulang sebagai "Objek seperti kamus apa yang harus saya gunakan jika saya ingin mengulangi kunci dalam urutan yang diurutkan?" maka Anda bisa mengembangkan objek seperti ini:
var a = {
keys : new Array(),
hash : new Object(),
set : function(key, value) {
if (typeof(this.hash[key]) == "undefined") { this.keys.push(key); }
this.hash[key] = value;
},
get : function(key) {
return this.hash[key];
},
getSortedKeys : function() {
this.keys.sort();
return this.keys;
}
};
// sample use
a.set('b',1);
a.set('z',1);
a.set('a',1);
var sortedKeys = a.getSortedKeys();
for (var i in sortedKeys) { print(sortedKeys[i]); }
Jika Anda tidak memiliki kendali atas fakta bahwa data berada dalam objek biasa, utilitas ini akan mengonversi objek reguler ke kamus yang berfungsi penuh:
a.importObject = function(object) {
for (var i in object) { this.set(i, object); }
};
Ini adalah definisi objek (bukan fungsi konstruktor yang dapat digunakan kembali) untuk kesederhanaan; edit sesuka hati.