Ich stehe hier vor einer großen Herausforderung. Ich soll gewisse chinesische "Ausdrücke" nach Pinyin sortieren.Chinesisch Sortierung nach Pinyin in Javascript mit localeCompare?
Die Frage:
Wie könnte ich sortiere nach Pinyin in Firefox?
Gibt es eine Möglichkeit, in IE 9 und 10 richtig zu sortieren? (Sie sind auch von der Website unterstützt werden)
Beispiel:
- 财经 传讯 公司
- 财经 顾问
- 房地产 及 按揭
Nach einem Übersetzungsbüro , so sollte die Sortierreihenfolge der Wörter sein. Die Übersetzungen sind wie folgt:
- Finanzkommunikationsagenturen
- Finanzberatungen
- Immobilien und Hypotheken
Die pronanciations in lateinischen Alphabet:
- Cai Jing Chuan xun Gong si
- cai jing gu wen
- fang di chan ji ein jie
String.localeCompare: MDN Docs
Von dem, was ich verstehe, ich bin ein zweites Argument für die String.localeCompare
Verfahren bereitzustellen, das die Methode "erzählt" nach Pinyin im BCP 47 Format zu sortieren, welches zh-CN-u-co-pinyin
sein sollte.
So ist der vollständige Code sollte wie folgt aussehen:
var arr = [ "财经传讯公司", "财经顾问", "房地产及按揭"];
console.dir(arr.sort(function(a, b){
return a.localeCompare(b, [ "zh-CN-u-co-pinyin" ]);
}));
ich dies erwartet, dass die Ausdrücke in der Reihenfolge auf die Konsole protokollieren ich sie in dem Array, aber die Ausgabe unterscheidet sich eingetragen.
On FX 27 ist die Reihenfolge: 3, 1, 2
in Chrom 33: 1, 2, 3
In IE 11: 1, 2, 3
Anmerkung:
Pinyin ist das offizielle phonetische System für das Transkribieren der Aussprachen der chinesischen Schriftzeichen in das lateinische Alphabet auf Mandarin .
Ich würde nicht erwarten, dass localeCompare() transliteriert auf Pinyin, was ich erwarten würde, ist es führt Eingangs Vergleich unter der Annahme, Text ist Pinyin. BTW wird in FF ab 29 unterstützt (funktioniert also nicht in 27). –
In der Tat! Ich habe die Kompatibilitätstabelle verpasst. Ich war zu "gewohnt" zu FX mit den Features auf MDN :) Naiv Fehler –
Hier gibt es die LocalCompare MDC Dokumentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare – sharkbait