Javascript语言环境字符串与string .prototype. valueof的比较 &g



我有以下的例子:

class MyClass {
constructor(name) {
this.name = name;
}
toString() {
return this.name;
}
valueOf() {
return this.name;
}
}
const list = [new MyClass("b"), new MyClass("ä")];
list.sort();
console.log(list.join());
list.sort(new Intl.Collator('de').compare);
console.log(list.join());

在这里,Collator需要得到正确的排序顺序,但是我想要去掉它,并且我想要能够比较MyClass的实例与简单的myClass1 < myClass2。从理论上讲,这应该可以通过更改valueOf函数来实现。

我现在的问题是,有没有任何JavaScript内置的方法来获得"locale"字符串的值(类似于Intl.CollatorlocaleCompare),我可以在我的valueOf函数中返回以获得正确的顺序?

不,没有这样的信息。基本上,除非您直接(如Intl.Collator)或间接(如localeCompare)将Intl与指定的区域设置一起使用,否则您将根据浏览器实现的字符串比较代码点,这很可能是通过UTF-16代码点。

最新更新