Сортировка: это зависит от браузера - PullRequest
4 голосов
/ 27 декабря 2011

Когда я произвел сортировку по заголовку для набора значений массива, он дал мне 3 разных результата в Safari, Chrome и Firefox. Почему поведение так? Я использовал sproutcore framework. Я использовал

Array.sort(function(a,b){return function2(parameter1,parameter2,parameter3,parameter4)})

function2 сравнивает мои keyValue. function2 в свою очередь вызывает другую функцию сравнения для сравнения значений записи. Эта функция возвращает 1, -1 или 0 на основе

record1.localeComapre(record2)

1 Ответ

2 голосов
/ 27 декабря 2011

Откуда ты знаешь, что получаешь разные результаты?

Опыт других людей показывает, что поведение localeCompare отличается между браузерами. См., Например, http://blog.schmichael.com/2008/07/14/javascript-collation-fail/, а также http://code.google.com/p/v8/issues/detail?id=459

Не видя более подробно, как работает ваш компаратор, я не могу сейчас предложить больше. После этого вы можете написать быструю проверку и подтвердить, что списки действительно отсортированы; если результаты получаются положительными, то различия могут быть связаны с особенностями localeCompare или стабильностью процедуры сортировки.

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