需求背景
需要前端进行表格排序,表格数据的类型有string number两种,string类型要求不区分大小写进行排序
思路
利用关系操作符 > < , 比较规则如下:
如果关系操作符的操作数都是字符串,则逐个比较字符串中对应字符的编码
ASCII码对照表
代码
function compare(list) {
list.sort(function (s1, s2) {
const x1 = s1.toUpperCase()
const x2 = s2.toUpperCase()
if (x1 < x2) { // 升序
return -1
}
if (x1 > x2) {
return 1
}
return 0
})
return list
}
const test = ['are', 'Andy', 'Rake', 'Lily', 'car']
console.log(compare(test))
// 输出 ['Andy', 'are', 'car', 'Lily', 'Rake']