Вопрос реализации JavaScript: как сделать эту функцию отображать значения
-
29-09-2019 - |
Вопрос
Пожалуйста, простите меня, но я знаю основы JS и как написать/назвать основную функцию, но в этом случае я пытаюсь сопоставить альфа-отсортированный список категорий из БД, чтобы соответствовать моему набору (не альфа) заказа из указанных категорий, как указано ниже (это код, предложенный для использования другим пользователем по вопросу, который я задал о том, как отобразить порядок возвращаемых категорий). Тем не менее, я не могу понять, как интегрировать код этого человека в свой собственный код.
Просто увидев, что он реализован против другого списка примеров (чтобы имитировать то, что я бы взял из DB), и как я бы назвал его в операторе по делу Switch, чтобы обернуть свой HTML вокруг имен категорий и вернуть их на веб -страницу в отображенном порядке I Хочу очень помочь. Извините, если это окажется очевидным. Я пытаюсь узнать, что могу, когда сталкиваюсь с этими проблемами. Спасибо!
var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
return businesses.filter(function (business) {
return business.category === category;
});
});
Решение
Данный код, скорее всего, будет использование библиотеки JQuery JavaScript, которая имеет некоторые полезные функции, такие как map()
для манипулирующих массивов.
Код предполагает, что у вас есть объект / массив jQuery, businesses
который содержит предприятия, которые вам нужно заказать. Если мы прочитаем это снаружи в
- Пропустите каждый элемент в массиве в свою очередь в функцию карты. Функция карты требует функции, чтобы сказать, как должен быть отображен каждый элемент.
- Анонимная функция
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"]