字符串按首字母大小写排序

176 阅读1分钟

需求背景

需要前端进行表格排序,表格数据的类型有string number两种,string类型要求不区分大小写进行排序

思路

利用关系操作符 > < , 比较规则如下:

如果关系操作符的操作数都是字符串,则逐个比较字符串中对应字符的编码

ASCII码对照表

image.png

代码

   
   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']