Строка сортировки Javascript numeric-alpha с нулями в конце - PullRequest
1 голос
/ 12 мая 2011

Я ужасно разбираюсь в математике, но мне нужно иметь возможность сортировать строки в JavaScript (или jQuery) в порядке цифр-альфа с нулями в конце.

Так что для этого я знаюЯ могу преобразовать строку в массив с помощью myStr.split (''), а затем вызвать метод sort () с помощью пользовательской функции сортировки, поэтому у меня есть следующее:

function mysort(a, b) {
    // not sure what to put here.
    // order should be: 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0
}

function sortMyString(str) {  
    str.split('');  
    return str.sort(mysort);  
}

Я был бы очень признателенпомощь в этом.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 12 мая 2011

Вы можете использовать функцию сортировки, а затем обрабатывать нули с помощью специального кода.Вот ссылка:

http://www.w3schools.com/jsref/jsref_sort.asp

0 голосов
/ 12 мая 2011

Это приведет к тому, что строка будет такой же, как указано выше, не стесняйтесь смешивать строку, добавлять больше и т. Д., И она должна появляться в нужном вам порядке.

http://jsfiddle.net/dJMHK/

var str = '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0';

str = str.split('');

str = str.sort(function (a,b) {
    if (a === '0' || b === '0')
        return (b === a) ?  0 : (a < b) ? 1 : -1;

    return (a < b) ? -1 : (a === b) ? 0 : 1;
});

document.write(str);
0 голосов
/ 12 мая 2011

Если вы разделяете и сравниваете отдельные символы, вы можете использовать функцию charCodeAt .

a.charCodeAt(0)

и

b.charCodeAt(0)

, чтобы получить значение символа Unicode,Вы захотите иметь случаи для 1-9, AZ, az, 0 и всего, что вы не планировали.

В вашей функции сортировки, чтобы получить элементы в соответствующем порядке: вернуть 0, если a == b, 1, если a> b, и -1, если a

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