Данный код, скорее всего, использует библиотеку jQuery JavaScript, которая имеет несколько полезных функций, таких как map()
для манипулирования массивами.
Код предполагает, что у вас есть объект / массив jQuery businesses
, который содержит предприятия, которые вам нужно заказать.Если мы читаем его извне в
- , передаем каждый элемент массива по очереди в функцию map.Функция map принимает функцию, которая сообщает, как должен отображаться каждый элемент.
- Анонимная функция
function (category)...
принимает один аргумент, определенный элемент, переданный ей в этой итерации, и возвращает результат отображения. - возвращаемый результат является функцией вызова фильтра на
businesses
и передачи ему функции, указывающей, как должны фильтроваться предприятия. - Анонимная функция
function (business)...
принимает аргумент, конкретный элемент передаетсяон повторяется как businesses
и возвращает те из них, которые соответствуют аргументу категории, заданному во внешней функции. - Конечный результат - это массив элементов, упорядоченных массивом категорий
[ 'F', 'C', 'A1', 'A2', 'A3' ]
Если мы вернемся к исходной задаче , вам необходимо заказать список категорий на основе предпочтений клиента.Давайте создадим объектный литерал для сопоставления порядка
var map = {
F : 5,
C : 3,
A1 : 1,
A2 : 4,
A3 : 2
}
. Мы можем использовать эту карту для упорядочения массива, используя sort
метод
var array = ['F', 'C', 'A1', 'A2', 'A3'];
array.sort(function(a,b) {
return map[a] - map[b];
});
Это возвращает нам ["A1", "A3", "C", "A2", "F"]