Случай переключения 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;
});
});