【发布时间】:2011-10-18 01:22:30
【问题描述】:
有很多通过某些属性(即“标题”)对某些 JSON 数组进行排序的示例 我们正在使用这样的比较功能:
function sortComparer(a, b) {
if (a.title == b.title)
return 0;
return a1 > b1 ? 1 : -1;
}
问题是塞尔维亚拉丁字母顺序看起来像“A、B、C、Č、Ć、D、...” 当使用上面的 sortComparer 时,我得到 D 在“Č”或“Ć”之前排序。 知道如何根据当前的文化语言进行排序吗?
【问题讨论】:
-
一种方法是将其他字符替换为对应的 ASCII 字符。
-
不确定你的想法。我想到的唯一方法是定义字母数组,例如: var letters = {'a','b','c', 'č','ć', ...} 并在 sortComparer 函数中比较索引.这种方法的缺点是我们必须为每种非英语的文化编写这样的数组。
-
Javascript 不支持 Unicode 排序算法,所以你基本上是被淹没了。您不能使用代码点排序并获得任何合理的东西。要获得字母排序,您需要 UCA。
-
我认为您的预期顺序是错误的。有一个例子developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript sorting