Вот реализация, которая использует рекурсию для сортировки по любому числу полей сортировки от 1 до бесконечного. Вы передаете ему массив результатов, который представляет собой массив объектов результатов для сортировки, и массив sorts, который представляет собой массив объектов сортировки, определяющих сортировку. У каждого объекта сортировки должен быть ключ «выбрать» для имени ключа, которое он сортирует, и ключ «порядок», который является строкой, обозначающей «восходящий» или «нисходящий».
sortMultiCompare = (a, b, sorts) => {
let select = sorts[0].select
let order = sorts[0].order
if (a[select] < b[select]) {
return order == 'ascending' ? -1 : 1
}
if (a[select] > b[select]) {
return order == 'ascending' ? 1 : -1
}
if(sorts.length > 1) {
let remainingSorts = sorts.slice(1)
return this.sortMultiCompare(a, b, remainingSorts)
}
return 0
}
sortResults = (results, sorts) => {
return results.sort((a, b) => {
return this.sortMultiCompare(a, b, sorts)
})
}
// example inputs
const results = [
{
"LastName": "Doe",
"FirstName": "John",
"MiddleName": "Bill"
},
{
"LastName": "Doe",
"FirstName": "Jane",
"MiddleName": "Bill"
},
{
"LastName": "Johnson",
"FirstName": "Kevin",
"MiddleName": "Bill"
}
]
const sorts = [
{
"select": "LastName",
"order": "ascending"
},
{
"select": "FirstName",
"order": "ascending"
},
{
"select": "MiddleName",
"order": "ascending"
}
]
// call the function like this:
let sortedResults = sortResults(results, sorts)
Я просто решил эту точную проблему для меня.
проблема состояла в том, что кто-то еще создал файл поэтому даже при том, что у меня есть права администратора на компьютере, который я был неспособен внести изменениями в файл или файлы. Необходимо войти в свойства файла или папки и изменить владение или добавить владение. Эта веб-страница объясняет это хорошо шаг за шагом, что необходимо сделать.
, Как только я сделал вышеупомянутое, я нашел файл в файловом менеджере и вручную извлек его. Я не думаю, что необходимо в студийном проекте андроида, если это пыталось удалить его так или иначе.