草庐IT

localeCompare

全部标签

javascript - 在捷克语中对数组进行排序,localeCompare

我在用捷克名字对数组进行排序时遇到问题。它适用于普通字符,但不适用于特殊字符。'Sb','St','Šk';特殊的Š应该在其他两个词之后,但它以不同的顺序结束。这是一个简单的代码。vartmpArr=['Sb','BE','De','CS','Au','Šk','De','St','Ci','št'];functionmySort(s1,s2){returns1.localeCompare(s2,'cz',{sensitivity:"variant"});}varsorted=tmpArr.sort(mySort);console.log(tmpArr);for(variinsorte

javascript - 通过将 a.localeCompare(b) 切换为 (a<b?-1 :(a>b? 1:0)),排序速度提高 400 倍

通过切换javascript排序函数从myArray.sort(function(a,b){returna.name.localeCompare(b.name);});到myArray.sort(function(a,b){return(a.nameb.name?1:0));});我能够将在Chrome中对约1700个元素数组进行排序的时间从1993毫秒缩短到5毫秒。几乎是400倍的加速。不幸的是,这是以正确排序非英语字符串为代价的。显然,当我尝试进行排序时,我的UI不能阻塞2秒。我能做些什么来避免localeCompare速度慢得可怕但仍保持对本地化字符串的支持吗?
12