Случай переключения JavaScript: во всяком случае, чтобы заставить порядок элементов, как они записаны?

Я получил результаты, которые возвращаются в приложение Google Mapping на боковой панели div. Результатом являются названия компаний, которые относятся к категориям, которые клиент хочет вернуть в определенном порядке. И, к сожалению, это не прямая альфа-сортировка. Таким образом, одна категория начинается с F, а вторая с C, а последние три, например, A.

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

Спасибо!

2 ответа

Таким образом, отсутствующим шагом в ответе, приведенном здесь, было то, КАК будет реализована карта и КАК можно реализовать фрагмент JS. В любом случае, мне пришлось задать этот вопрос как отдельный вопрос, и, наконец, я получил хороший рабочий пример для ответа.

Русь написала:

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

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

var map = {
     F : 5,
     C : 3,
     A1 : 1,
     A2 : 4,
     A3 : 2
 }

Мы можем использовать эту карту, чтобы упорядочить массив, используя метод сортировки

 var array = ['F', 'C', 'A1', 'A2', 'A3'];

 array.sort(function(a,b) {
     return map[a] - map[b];
 });
 This returns us ["A1", "A3", "C", "A2", "F"]

В любом случае, я хотел убедиться, что это включено в эту ветку для всех, кто ищет эту проблему в будущем, или для тех, кто следит за ней прямо сейчас. Спасибо всем за участие!

Можете ли вы перебрать категории в том порядке, в котором вы хотите их найти, и найти объект, с которым они связаны?

Например (псевдокод)

var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
    return businesses.filter(function (business) {
        return business.category === category;
    });
});
Другие вопросы по тегам