Array.sort()方法用于数组排序,可是最近遇到了个问题,就是字符串数组排序结果不正确。从网上查解决方案的过程当中,还发现数值之间排序也是有问题的。html
以前发现字符串的localCompare()方法仍是挺靠谱的,至少日期类字符串排序以前用着仍是很靠谱的,今天发现这个方法也不行。最终的解决方案是:数组
const sortData = (data) => { let tempData = []; for(let i = 0, l = data.length;i<l;i++){ tempData.push({ index : i, value : data[i] }) } tempData.sort(function(x,y){ return x.value.toString().localeCompare(y.value.toString()) || x.index - y.index; }); return tempData;};参考连接:https://www.cnblogs.com/yzeng/p/3949182.html