Intl.Collator
是否可以为 Javascript创建自定义对象?假设我有:
var letters = [ "a", "n", "ñ", "x" ]
如果我对它们进行排序,ñ
默认情况下会走到最后:
letters.sort() // [ "a", "n", "x", "ñ" ]
但是,使用 new Intl.Collator
,我可以这样做:
letters.sort(Intl.Collator('es').compare)
哪个按西班牙语 ( es
) 规则排序,并放在ñ
后面n
。
[ "a", "n", "ñ", "x" ]
现在,假设出于某种原因我想自己写一个Collator
,那会是ñ
第一个?
[ "ñ", "a", "n", "x" ]
我无法找到任何有关为Intl.Collator
.
这可能吗?
更新
对的,这是可能的。
更新:
我在 ECMAscript i18n 标准2中找到了关于如何创建自定义语言环境的建议:
function MyCollator(locales, options) {
Intl.Collator.call(this, locales, options);
// initialize MyCollator properties
}
MyCollator.prototype = Object.create(Intl.Collator.prototype);
MyCollator.prototype.constructor = MyCollator;
// add methods to MyCollator.prototype
var collator = new MyCollator("de-u-co-phonebk");
a.sort(collator.compare);