AlexLearne Ответов: 2

Сортировка массива строк по алфавиту


Мне нужно было бы отсортировать массив букв с учетом регистра каждой строки, чтобы быть более конкретным, я хочу, чтобы заглавные буквы шли первыми, как я могу это сделать? Я нашел решение, которое справляется с этим, но есть одна ошибка, которую я не знаю, как исправить:
var arr = ["T", "h", "e", "c", "a", "t", "s", "a", "t", "o", "n", "t", "h", "e", "m", "a", "t"];
arr.sort(function(a, b)
{
    var x = a.toLowerCase(), y = b.toLowerCase();
    
    if(x < y) {return -1}
    else if (x > y ) {return 1} 
    else {return 0};
}); //-> ["a", "a", "a", "c", "e", "e", "h", "h", "m", "n", "o", "s", "t", "T", "t", "t", "t"]

Почему заглавная буква "Т"не будет первой в списке "Т", как это :
["a", "a", "a", "c", "e", "e", "h", "h", "m", "n", "o", "s",  "T", "t", "t", "t", "t"]

P. S Прошу прощения за предыдущий запутанный вопрос. Я пытаюсь отсортировать массив в соответствии с этим случаем.

Что я уже пробовал:

.sort(function (a, b) {
    return a.toLowerCase().localeCompare(b.toLowerCase());
});

Выход один и тот же

Karthik_Mahalingam

в Google chrome есть ошибка, в то время как он отлично работает с IE и Firefox

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Почему заглавная буква Т не идет первой?
Он не идет первым, потому что вы спросили его таким образом.
Трудно думать, что этот код ваш! 3 строки, и вы не понимаете код.

Это домашнее задание, поэтому вы должны сами найти, что не так.
Совет: прочтите код, проблема должна быть очевидна. Если вы чего-то не понимаете, ищите определение и использование.


AlexLearne

Извините, что сбил вас с толку, но я обновил вопрос. Я понимаю, что делает код. Ну, я думаю, что знаю

Patrice T

Проблема "Т" не в тех изменениях, которые вы внесли.
Там не так уж много мест, чтобы искать.