ich die folgende Reihe von Objekten:Sortierung mehrerer Indizes
[
{
folder: 'ddd'
},
{
folder: 'aaa'
},
{
file: 'zzz'
}
]
Ich mag es von Dateischlüssel zuerst sortieren, dann nach Ordner Schlüsseln - wie kann ich das tun? Ich habe etwas in der Art geschrieben:
var s = function (arr, type) {
arr.sort(function (a, b) {
var aHasKey = false, bHasKey = false;
var aValue, bValue;
if (a.hasOwnProperty(type) == true) {
aHasKey = true;
aValue = a[type];
}
if (b.hasOwnProperty(type) == true) {
bHasKey = true;
bValue = b[type];
}
if (aHasKey == true && bHasKey == true) {
if (aValue < bValue) return -1;
if (aValue == bValue) return 0;
if (aValue > bValue) return 1;
} else if (aHasKey == true) {
return 1;
} else if (bHasKey == true) {
return -1;
} else {
return 0;
}
});
};
s(arr, 'file');
s(arr, 'folder');
Aber es scheint nur nach Ordner zu sortieren, und nicht nach Datei. Wie soll ich das machen?
bitte einige weitere Daten zu sortieren hinzufügen. Haben Sie alle Elemente Ordner und Dateischlüssel? –