試一試
const enCollator = new Intl.Collator("en");
const deCollator = new Intl.Collator("de");
const svCollator = new Intl.Collator("sv");
console.log(enCollator.compare("z", "a") > 0);
// Expected output: true
console.log(deCollator.compare("z", "ä") > 0);
// Expected output: true
console.log(svCollator.compare("z", "ä") > 0);
// Expected output: false
語法
js
compare(string1, string2)
引數
string1,string2-
要相互比較的字串。
返回值
一個數值,表示根據此 Intl.Collator 物件的排序順序,string1 和 string2 之間的比較結果。
- 如果
string1排在string2之前,則返回一個負值; - 如果
string1排在string2之後,則返回一個正值; - 如果它們被視為相等,則返回 0。
示例
使用 compare 對陣列進行排序
使用 compare 函式對陣列進行排序。請注意,該函式已繫結到它所屬的整理器物件,因此可以直接傳遞給 Array.prototype.sort()。
js
const a = ["Offenbach", "Österreich", "Odenwald"];
const collator = new Intl.Collator("de-u-co-phonebk");
a.sort(collator.compare);
console.log(a.join(", ")); // "Odenwald, Österreich, Offenbach"
使用 compare 對陣列進行搜尋
使用 compare 函式在陣列中查詢匹配的字串。
js
const a = ["Congrès", "congres", "Assemblée", "poisson"];
const collator = new Intl.Collator("fr", {
usage: "search",
sensitivity: "base",
});
const s = "congres";
const matches = a.filter((v) => collator.compare(v, s) === 0);
console.log(matches.join(", ")); // "Congrès, congres"
規範
| 規範 |
|---|
| ECMAScript® 2026 國際化 API 規範 # sec-intl.collator.prototype.compare |
瀏覽器相容性
載入中…