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