Я столкнулся с довольно сложной задачей. Я должен сортировать определенные китайские "выражения" пиньинь.
Вопрос:
Как я могу сортировать по pinyin в Firefox?
Есть ли способ правильно сортировать в IE 9 и 10? (Они также должны поддерживаться веб-сайтом)
Пример:
- 财经 传讯 公司
- 财经 顾问
- 房地产 及 按揭
Согласно агентству переводчика, это то, что должен быть порядок сортировки слов. Переводы заключаются в следующем:
- Финансовые агентства связи
- Финансовые консультации
- Недвижимость и ипотечные кредиты
Провозглашения в латинском алфавите:
- cai jing chuan xun gong si
- cai jing gu wen
- fang di chan ji a jie
String.localeCompare: Документы MDN
Из того, что я понимаю, я должен предоставить второй аргумент методу String.localeCompare
, который "говорит" метод сортировать по пиньину в формате BCP 47, который должен быть zh-CN-u-co-pinyin
.
Таким образом, полный код должен выглядеть следующим образом:
var arr = [ "财经传讯公司", "财经顾问", "房地产及按揭"];
console.dir(arr.sort(function(a, b){
return a.localeCompare(b, [ "zh-CN-u-co-pinyin" ]);
}));
Я ожидал, что это приведет к консолидации выражений в порядке, в который я ввел их в массив, но выход отличается.
На FX 27 порядок: 3, 1, 2
В Chrome 33: 1, 2, 3
В IE 11:1, 2, 3
Примечание:
Пиньинь является официальной фонетической системой для транскрипции мандарина произношения китайских иероглифов в латинском алфавите.