试一试
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 |
浏览器兼容性
加载中…