相关疑难解决方法(0)

基于区域设置的Javascript排序,以预定义的方式对重音字母和其他变体进行排序

在芬兰,我们排序WV(如英语),但因为W不是本地芬兰字母,它被认为是一个变体V,因为它是等于其排序V,但在情况下,两个词之间的唯一区别是,VW,然后V首先对-version进行排序.一个例子说明了正确的顺序:

Vatanen, Watanen, Virtanen
Run Code Online (Sandbox Code Playgroud)

芬兰语V,W并作为A和整理Á.Á是排序的A,但如果它是唯一的差异,那么非重音的首先出现.同样的规则是针对所有其他重音字母,但是Å,Ä并且Ö在Z之后单独整理.

问题:以预定义方式对变体进行排序的最佳算法是什么?(例如,[Watanen, Vatanen, Virtanen][Vatanen, Watanen, Virtanen])?

补充:这个问题与http://cldr.unicode.org/index/cldr-spec/collat​​ion-guidelines中定义的其他变体的扩展有关,因为该技术很可能是同样,这个问题的答案有益于尽可能广泛的受众,排序算法可以与Unicode CLDR中定义的整理规则兼容.Unicode CLDR定义了字母之间的三个级别的差异:主要级别(基本字母),次级别(重音字母)和第三级别(字符大小写).

我已经考虑过某种类型的数组准备工作,我们可以用零填充所有数字,使它们可以作为字符串进行比较.一个例子:阵列[file1000.jpg, file3.jpg, file22.jpg]可以是准备用零这种方式,使其可比作为字符串通过填充:[file1000.jpg, file0003.jpg, file0022.jpg].由于数组的准备,我们可以使用原生Array.sort()快速排序.

目标语言是Javascript,它缺乏对基于排序规则的排序的支持,因此必须自定义排序功能.该算法是首选,但如果您还有代码,则值得+1.

javascript arrays sorting algorithm locale

14
推荐指数
3
解决办法
5217
查看次数

标签 统计

algorithm ×1

arrays ×1

javascript ×1

locale ×1

sorting ×1