Iは、以下のオブジェクトの配列を持っている:ソート
[
{
folder: 'ddd'
},
{
folder: 'aaa'
},
{
file: 'zzz'
}
]
私は、フォルダのキーによって、ファイルキーで最初にそれをソートする - どのように私はこれを行うことができますか?私は次のような文章を書いています:
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');
しかし、それはファイルではなくフォルダによってのみソートされているようです。私はこれをどのようにするべきですか?
ソートするためにいくつかのより多くのデータを追加してください。すべてのアイテムフォルダとファイルキーを持っていますか? –