Intl.Collator.prototype.compare()

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本使用。自 2017 年 9 月以來,它已在瀏覽器中提供。

compare() 方法是 Intl.Collator 例項的一個方法,它根據該整理器物件的排序順序比較兩個字串。

試一試

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 物件的排序順序,string1string2 之間的比較結果。

  • 如果 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 函式在陣列中查詢匹配的字串。

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

瀏覽器相容性

另見