中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

帶重音字符的字符串排序

發(fā)布于:2021-02-21 00:00:30

0

266

0

重音字符 字符串 排序 JavaScript

字符串可以在任何編程語言中產(chǎn)生很多問題。無論是簡單的字符串,包含表情符號,html實體甚至是帶重音符號的字符串,如果我們不清理數(shù)據(jù)或做出正確的字符串處理選擇,我們可能會遭受重創(chuàng)。

在瀏覽的時候,我發(fā)現(xiàn)了一個尚未遇到的字符串情況(...我可能有,但沒有注意到):對重音字符進行排序以獲得所需的結果。事實是,重音字符的處理方式與您在排序時所想的有所不同:

// Spanish
['único','árbol', 'cosas', 'fútbol'].sort();
// ["cosas", "fútbol", "árbol", "único"] // bad order

// German
['Woche', 'w?chentlich', 'w?re', 'Wann'].sort();
// ["Wann", "Woche", "w?re", "w?chentlich"] // bad order

Yikes-重音符號不能簡單地跟隨其對應的重音符號。通過采取額外的步驟,即localeCompare,我們可以確保我們的字符串首先按照我們想要的方式排序:

['único','árbol', 'cosas', 'fútbol'].sort(function (a, b) {
 return a.localeCompare(b);
});
// ["árbol", "cosas", "fútbol", "único"]

['Woche', 'w?chentlich', 'w?re', 'Wann'].sort(function (a, b) {
 return a.localeCompare(b);
});
// ["Wann", "w?re", "Woche", "w?chentlich"]

// Or even use Intl.Collator!
['único','árbol', 'cosas', 'fútbol'].sort(Intl.Collator().compare);
// ["árbol", "cosas", "fútbol", "único"]

['Woche', 'w?chentlich', 'w?re', 'Wann'].sort(Intl.Collator().compare);
// ["Wann", "w?re", "Woche", "w?chentlich"]

沒有帶重音符號的附加混亂,本地化已經(jīng)是一個巨大的挑戰(zhàn)。保持localeCompare和Intl.Collator 記住每一次你想排序字符串!