キリル文字で書かれた文字列の並べ替えに問題がありました(アクセント付き)。次の解決方法では、文字列の先頭に分音記号の有無を区別して文字列をソートします。キリル文字のアクセント記号のソート
function sorting(){
let words = document.querySelectorAll(".dictionary");
let unsorted = [];
let collator = new Intl.Collator('ru', {sensitivity: 'base'});
words.forEach(s => {
unsorted.push(s.textContent);
});
unsorted.sort(collator.compare);
unsorted.forEach(s => {
document.write("<p>" + s + "</p>");
});
}
EDIT
これが配列であるソート前:
[..., 'áвтор', ..., 'авиабилéт', ..., 'янтáрный', ..., 'Áвстрия', 'áвтор', 'автостóп'];
これは、ソートした後です:
["авиабилéт", "автостóп", ..., "янтáрный", ..., "Áвстрия", "áвтор"]
これは私が
['авиабилéт', 'Áвстрия', 'áвтор', 'автостóп', ..., 'янтáрный', ...];
ソートする文字列を含む自己完結型の例を提供できますか?また、 'Intl.Collator.supportedLocalesOf( 'ru')'が返すものをチェックしましたか?どのブラウザ(およびバージョン)を使用していますか? – jcaron
ソート後に値を共有することはできますか? – gurvinder372
問題をよく説明する単語のリストを追加しました。この問題は、分音記号で始まる言葉にのみ関係しているようです。 'Intl.Collator.supportedLocalesOf( 'ru')'は '[" ru "]'を返します。私はChrome 62を使用しています。 – enk1