给字符串排序 localeCompare 认识一下

13,178次阅读
没有评论

共计 1125 个字符,预计需要花费 3 分钟才能阅读完成。

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

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计1125字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)