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

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

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

Спасибо!

Ответы [ 2 ]

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

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

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

Код, представленный, скорее всего, будетиспользуя библиотеку jQuery JavaScript, которая имеет некоторые полезные функции, такие как 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"]

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

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

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

например. (Псевдокод)

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