给字符串排序 localeCompare 认识一下

简介: localeCompare 用法

localeCompare 用法


定义:用本地特定的顺序来比较两个字符串。


语法:stringObject.localeCompare(target)


参数:target——要以本地特定的顺序与 stringObject 进行比较的字符串。


返回值

如果 stringObject 小于 target, localeCompare() 返回小于 0 的数。

如果 stringObject 大于 target,localeCompare() 返回大于 0 的数。

如果两个字符串相等,localeCompare() 返回 0。

<> 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。


在日常业务中经常要把一个数组,按值类型为字符串来排序,相同的放一起显示

let a = ['FATP', 'MD', 'FATP', 'STANDARD', 'STANDARD', '3', 'sda', null]
let b = a.sort((val1, val2) => { return String(val1).localeCompare(String(val2)) })
console.log(b)
// [ '3', 'FATP', 'FATP', 'MD', null, 'sda', 'STANDARD', 'STANDARD' ]


当数组元素是一个对象的时候

let c = [
  { name: '太空编程', link: 'http://spacexcode.com' },
  { name: '前端开发笔记', link: 'http://i-fanr.com' },
  { name: '太空编程', link: 'http://doc.i-fanr.com' },
  { name: '前端开发笔记', link: 'http://wiki.i-fanr.com' }
]
let d = c.sort((val1, val2) => { return String(val1.name).localeCompare(String(val2.name)) })
console.log(d)
//////////////
[
  { name: '前端开发笔记', link: 'http://i-fanr.com' },
  { name: '前端开发笔记', link: 'http://wiki.i-fanr.com' },
  { name: '太空编程', link: 'http://spacexcode.com' },
  { name: '太空编程', link: 'http://doc.i-fanr.com' }
]


目录
相关文章
|
6月前
面试题 08.08:有重复字符串的排列组合
面试题 08.08:有重复字符串的排列组合
56 0
|
1月前
|
算法 C语言
【C语言】排序查找
【C语言】排序查找
|
1月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
6月前
|
算法 搜索推荐 数据处理
C语言中的排序与查找技术详解
C语言中的排序与查找技术详解
73 1
|
6月前
|
C语言
每天一道C语言编程(4):字符串的逆序输出
每天一道C语言编程(4):字符串的逆序输出
99 0
|
6月前
|
Java
java字符串练习题8、同构字符串
java字符串练习题8、同构字符串
53 0
java字符串练习题8、同构字符串
|
6月前
面试题 08.07:无重复字符串的排列组合
面试题 08.07:无重复字符串的排列组合
56 0
|
前端开发 C语言
【C语言】字符串逆序与三步翻转法(倒置字符串)
【C语言】字符串逆序与三步翻转法(倒置字符串)
185 0
【C语言】字符串逆序与三步翻转法(倒置字符串)
【数组&&字符串&&宏练习题】
【数组&&字符串&&宏练习题】
70 0
|
C语言
C语言刷题系列——6.(递归)实现顺序输出整数
C语言刷题系列——6.(递归)实现顺序输出整数
264 0
下一篇
无影云桌面