Array.sort()方法用于数组排序,但是最近遇到了个问题,就是字符串数组排序结果不正确。从网上查解决方案的过程中,还发现数值之间排序也是有问题的。
之前发现字符串的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