Вопрос реализации Javascript: как заставить эту функцию отображать значения - PullRequest
0 голосов
/ 17 августа 2010

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

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

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

1 Ответ

2 голосов
/ 17 августа 2010

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

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

  1. , передаем каждый элемент массива по очереди в функцию map.Функция 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"]

...