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

StackOverflow https://stackoverflow.com/questions/3497953

Вопрос

Пожалуйста, простите меня, но я знаю основы 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 который содержит предприятия, которые вам нужно заказать. Если мы прочитаем это снаружи в

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top