Я использую jQuery для разбора файла JSON сотрудников, который содержит их имя, отдел, подразделение и некоторые другие детали.Сортировка массива на основе пользовательского приоритета одного атрибута
например:
[
{
"LAST":"Betsy",
"FIRST":"Jackson",
"DEPT":"Customer Service",
"SUBDEPT":"Tech Support",
"JOINED":"02/94",
"TITLE":"Technical Customer Service Representative",
"RESIDENCE":"Someplace",
"HOBBIES":"Reading, Walking, Sleeping"
},
{
"LAST":"Sally",
"FIRST":"Smith",
"DEPT":"Customer Service",
"SUBDEPT":"Installation Customer Service Representative",
"JOINED":"01/04",
"TITLE":"Technical Customer Service Representative",
"RESIDENCE":"Someplace",
"HOBBIES":"Reading, Walking, Sleeping"
},
]
Я пытаюсь создать приложение, где пользователи могут нажать на имя сотрудника и видеть обновление результатов, где каждый сотрудник в отделе этого работника показан, организованное подразделами и прокручивается до данного сотрудника.
Я успешно создал список имен сотрудников, с атрибутами data- *, которые хранят их отдел и подразделение. Когда щелкнули имя сотрудника, я смог разобрать файл JSON во второй раз, чтобы вернуть всех сотрудников, которые также находятся в этом отделе, и построить сетку, а затем переместить весь соответствующий объект-сотрудник в новый массив под названием « Результаты."
Примечание: отдел = данные отделу прошел селектор Jquery ..
$.each(data, function(i, employee) {
if (employee.DEPT == dept) {
var employeetext = '<span class="name">'
+ employee.FIRST+' '+ employee.LAST+'</span>',
employee.JOINED,
employee.TITLE,
employee.RESIDENCE,
'...',
employee.HOBBIES;
$('#employees').append('<div class="employee_block"><img src="" width="85" height="113">' + employeetext + '.</div>');
results.push(employee);
}
}) // end stepping through employees
Однако, мне нужно, чтобы построить сетку на основе нового упорядоченный из массива, а не у алфавитного, что в настоящее время используется сейчас. Мне нужно разделить результаты по подразделу в соответствии с приоритетом, который не является алфавитным, а скорее настраиваемым, который я надеюсь определить в отдельном объекте (будет ли это «реляционная база данных?»), Например:
var subdeptorder = [
{
"DEPT": "Marketing",
"SUBDEPTS": ["Administration", "Purchasing", "Advertising", "PR"]
},
{
"DEPT": "Sales",
"SUBDEPTS": ["Administration", "Business Development"]
}
]
Так что мне нужно отсортировать массив результатов в соответствии с департаментом сотрудника (и его поддепозитом отдела).
Как написать функцию сравнения для повторной сортировки массива результатов в соответствии с приоритетом, установленным в отдельном объекте?
использовать .sort и ссылаться на отдельный объект в логике, который возвращает -1 0 или 1 относительно узлов, которые в настоящее время сортируются. –
Спасибо. Я должен упомянуть, что это будет мой первый раз с использованием .sort, так что любой addl. руководство ценится! –
@JonathanLonowski: Если это вообще, это дубликат [Сортировка по индивидуальному заказу] (http://stackoverflow.com/questions/14872554/sorting-on-a-custom-order)! – Bergi