Sortieren javascript-Schlüssel/Wert-Paare in Objekt
Ich habe ein problem mit Sortieren von Gegenständen, die sich im Objekt. Also ich habe so etwas wie dieses:
var someObject = {
'type1': 'abc',
'type2': 'gty',
'type3': 'qwe',
'type4': 'bbvdd',
'type5': 'zxczvdf'
};
Ich möchte sozusagen someObject von Wert, und das ist, wo ich habe ein problem.
Ich habe die Sortier-Funktion, sollte der return-Taste/Wert-Paare sortiert nach Wert:
function SortObject(passedObject) {
var values = [];
var sorted_obj = {};
for (var key in passedObject) {
if (passedObject.hasOwnProperty(key)) {
values.push(passedObject[key]);
}
}
//sort keys
values.sort();
//create new object based on Sorted Keys
jQuery.each(values, function (i, value) {
var key = GetKey(passedObject, value);
sorted_obj[key] = value;
});
return sorted_obj;
}
und Funktion key bekommen:
function GetKey(someObject, value) {
for (var key in someObject) {
if (someObject[key] === value) {
return key;
}
}
}
Das problem ist im letzten Teil bei der Schaffung einer neuen, Rückgabe-Objekt - es ist sortiert nach den Schlüssel wieder. Warum? Und dies ist die spezifische situation, wenn ich zu arbeiten auf Objekt, NICHT auf array - (ja, ich weiß, das wäre einfacher...)
Weiß jemand, wie man Sortieren Sie Elemente im Objekt?
- mögliche Duplikate von Wie kann ich das Sortieren einer Liste nach dem Alphabet mit Hilfe von jQuery?
- Es gibt keinen Grund, zu Sortieren, ein Objekt. Die Eigenschaften eines Objekts sind immer in alphabetischer Reihenfolge angezeigt.
- dieser Schlüssel/Wert-Paare sind Futter für die drop-down-Liste. Und dass die Liste sortiert werden soll, von Wert. Ich habe keine Ahnung, wie Sie diese erreichen.
- Array Sortieren ist eine gültige, aber Ihnen ist ein Objekt
- Ich weiß. Ich dachte, dass es möglich ist. Als ich sah auf einige tutorials, javascript-Objekt sind nicht sortiert - aber mir ist. Egal in welcher Reihenfolge, sortiert array nach dem Schlüssel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei Möglichkeiten:
Umgestalten-Objekt in ein array
Etwas wie dieses:
Oder sogar besser, da Sie es irgendwo würde Sie sich nicht auf die array-Positionen, aber voller Namen-Tasten:
Verwenden Sie Ihr Objekt mit einer auxiliar-array
Wohin Sie möchten Ihre bestellten Gegenstand mit den Tasten, können Sie extrahieren Sie die Tasten so, wie Sie ein array, um es und durchqueren es auf das Objekt
Kombination der beiden
Wenn das Objekt nicht von Ihnen aufgebaut, sondern kommt von irgendwo anders, können Sie die zweite option Ansatz zu konstruieren, die ein array von Objekten wie in der ersten option. Das würde lassen Sie Ihre array überall mit perfekter Ordnung.
BEARBEITEN
Möchten Sie vielleicht zu prüfen, die Bibliothek underscore.js. Dort haben Sie sehr nützliche Methoden, die tun könnte der trick ziemlich einfach. Wahrscheinlich die Methode _.Paare mit einigen mapping würde alles tun, die Arbeit in einem statement.
Plain Objekte nicht haben, um überhaupt. Arrays sind eine spezielle Art der Objekte, die - haben.
Die Nähe der Sache, die Sie haben können, ist ein array mit den Objekt-Werten sortiert . So etwas wie zum Beispiel: