Вопрос реализации Javascript: как заставить эту функцию отображать значения

Пожалуйста, прости меня, но я знаю основы js и как написать / вызвать базовую функцию, но в этом случае я пытаюсь сопоставить отсортированный по альфа списку категорий из БД, чтобы он соответствовал моему заданному (не альфа) порядку указанных категорий, как указано ниже (это код, предложенный для использования другим пользователем по вопросу, который я задал, о том, как сопоставить порядок возвращаемых категорий). Однако я не могу понять, как интегрировать ответ кода этого человека в мой собственный код.

Просто увидеть, как он реализован в другом списке примеров (чтобы имитировать то, что я бы взял из БД) и как я бы назвал это в операторе switch case, чтобы обернуть мой html вокруг имен категорий и вернуть их на веб-страницу в порядке отображения. хочу бы помочь много. Извините, если это окажется очевидным. Я пытаюсь узнать, что я могу, когда сталкиваюсь с этими проблемами. Спасибо!

var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
    return businesses.filter(function (business) {
        return business.category === category;
    });
});

1 ответ

Решение

Данный код, скорее всего, будет использовать библиотеку jQuery JavaScript, которая имеет несколько полезных функций, таких как map() для манипулирования массивами.

Код предполагает, что у вас есть объект / массив jQuery, businesses который содержит предприятия, которые вам нужно заказать. Если мы читаем это снаружи в

  1. передать каждый элемент в массиве по очереди в функцию карты. Функция map принимает функцию, чтобы сказать, как должен отображаться каждый элемент.
  2. Анонимная функция function (category)... принимает один аргумент, конкретный элемент, переданный ему в этой итерации, и возвращает результат отображения.
  3. возвращаемый результат является функцией вызова фильтра businesses и передать ему функцию, чтобы сказать, как следует фильтровать бизнес.
  4. Анонимная функция function (business)... принимает аргумент, конкретный элемент передается ему как businesses повторяется и возвращает те из них, которые соответствуют аргументу категории, заданному во внешней функции.
  5. Конечным результатом является массив элементов, упорядоченных по массиву категорий [ '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"]

Другие вопросы по тегам