let textArr = [{id:'sh',name:'上海'}, {id:'bj',name:'北京'}, {id:'gz',name:'广东'}, {id:'sz',name:'深圳'}]
textArr.sort((a, b) => a.name.localeCompare(b.name, "zh"));
这段代码的目的是对数组 textArr
中的元素按照 name
属性进行排序。其中,sort
方法是 JavaScript 数组对象的一个内置方法,用于对数组元素进行排序。sort
方法接受一个可选的比较函数作为参数,该函数用于指定排序规则。在这里,我们使用了一个箭头函数 (a, b) => a.name.localeCompare(b.name, "zh")
作为比较函数,该函数使用 localeCompare
方法对数组元素进行排序。
localeCompare
方法是 JavaScript 字符串对象的一个内置方法,用于比较两个字符串的顺序。该方法接受一个字符串作为参数,返回一个数字,表示两个字符串的顺序关系。如果第一个字符串在字典中排在第二个字符串之前,则返回一个负数;如果第一个字符串在字典中排在第二个字符串之后,则返回一个正数;如果两个字符串相等,则返回 0。在这里,我们使用了 "zh"
作为 locale
参数,表示使用中文排序规则。
因此,这段代码会按照汉字拼音的顺序对数组 textArr
中的元素按照 name
属性进行排序。排序后的数组将按照以下顺序排列:
[
{id:'bj',name:'北京'},
{id:'gz',name:'广东'},
{id:'sh',name:'上海'},
{id:'sz',name:'深圳'}
]