Сортировка массива строк по алфавиту
Мне нужно было бы отсортировать массив букв с учетом регистра каждой строки, чтобы быть более конкретным, я хочу, чтобы заглавные буквы шли первыми, как я могу это сделать? Я нашел решение, которое справляется с этим, но есть одна ошибка, которую я не знаю, как исправить:
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