Es gibt keine präzise Möglichkeit, die "Schlüssel" eines Javascript-Objekts direkt zu bearbeiten. Es ist nicht wirklich dafür ausgelegt. Haben Sie die Freiheit, Ihre Daten in etwas Besserem als einem normalen Objekt (oder einem Array, wie Ihr Beispielcode vorschlägt) abzulegen?
Wenn ja, und wenn Ihre Frage wie folgt umformuliert werden könnte: "Welches wörterbuchähnliche Objekt sollte ich verwenden, wenn ich die Schlüssel in sortierter Reihenfolge durchlaufen möchte?" dann könnten Sie ein Objekt wie dieses entwickeln:
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]); }
Wenn Sie keine Kontrolle darüber haben, dass sich die Daten in einem regulären Objekt befinden, konvertiert dieses Dienstprogramm das reguläre Objekt in Ihr voll funktionsfähiges Wörterbuch:
a.importObject = function(object) {
for (var i in object) { this.set(i, object); }
};
Dies war der Einfachheit halber eine Objektdefinition (anstelle einer wiederverwendbaren Konstruktorfunktion); nach Belieben bearbeiten.