使用js,对含有中文和英文进行混合排序

使用js对数组
let arr = ['Alice','NAncy','陈趁', '朱新','Lily', '林大','Linda', 'Fiona', '雷老虎', 'Tina', '苏仨', 'Susan', 'Cary']按要求进行排序
1.要求对名字按字母排序,英文优先

function sortFun(a, b) {
 if(/^[a-z]/i.test(a) || /^[a-z]/i.test(b)){
   return a.localeCompare(b, 'en')
 }else {
   return a.localeCompare(b, 'zh-cn')
 }
}
arr.sort(sortFun)
/* arr = [
'Alice', 'Cary',
  'Fiona', 'Lily',
  'Linda', 'NAncy',
  'Susan', 'Tina',
  '陈趁',  '雷老虎',
  '林大',  '苏仨',
  '朱新'
] */

2.要求对名字按字母排序,中文优先

function sortFun(a, b) {
 return a.localeCompare(b, 'zh-cn')
}
arr.sort(sortFun)
/* arr ===> [
  '陈趁',  '雷老虎',
  '林大',  '苏仨',
  '朱新',  'Alice',
  'Cary',  'Fiona',
  'Lily',  'Linda',
  'NAncy', 'Susan',
  'Tina'
] */
posted @ 2021-10-15 11:43  蠢钝如猪  阅读(771)  评论(0编辑  收藏  举报