Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用带拉脱维亚字母的Intl.Collator时出现意外输出_Javascript_Collator - Fatal编程技术网

Javascript 使用带拉脱维亚字母的Intl.Collator时出现意外输出

Javascript 使用带拉脱维亚字母的Intl.Collator时出现意外输出,javascript,collator,Javascript,Collator,我需要用拉脱维亚语按键对对象数组进行排序,但使用Intl.Collator或CompareScale时,输出不正确 我的例子是: function letterSort(lang, strings) { strings.sort(new Intl.Collator(lang).compare); return strings; } console.log(letterSort('lv', ['ā', 'a', 'ābols','anna'])); // expected output:

我需要用拉脱维亚语按键对对象数组进行排序,但使用Intl.Collator或CompareScale时,输出不正确

我的例子是:

function letterSort(lang, strings) {
  strings.sort(new Intl.Collator(lang).compare);
  return strings;
}
console.log(letterSort('lv', ['ā', 'a', 'ābols','anna']));
// expected output: Array ["a", "anna", "ā", "ābols"]
// actual output: Array ["a", "ā", "ābols", "anna"]
有什么办法吗?
谢谢大家!

Intl有时会根据浏览器或操作系统的语言环境设置表现出不同的行为,因此,虽然在设置为en US的系统上排序可能无法正常工作,但在切换到lv lv时可能无法正常工作。我无法具体谈论拉脱维亚语,但在我所知道的本地化排序规则中,变音符号仅在与同一位置具有不同标记(或根本没有标记)的同一字母进行比较时影响排序顺序。你可以这样想,就像所有的东西都是先被排序,所有的变音符号都被删除了,然后只有在没有注释的形式相同的地方,顺序才被细化。我只是在不同的语言环境中做了一些实验,总是得到相同的排序顺序,即使我使用了无效的语言环境,比如“xx”。这可能是因为您使用的JavaScript根本不支持拉脱维亚语,而是使用通用的Unicode排序。不幸的是,似乎没有一种JavaScript
Intl
方法可以告诉您实际支持哪些语言环境