共计 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'}
]
正文完