带汉字的字符串比较排序
const data1 = [
{age: 12, name: '张三'},
{age: 18, name: '李四'},
{age: 16, name: '王麻子'},
{age: 21, name: '花花'},
{age: 5, name: '华华'},
{age: 20, name: '华华'},
{age: 20, name: 'zhangsan'},
{age: 20, name: 'lisi'}
]
// 中英文可用。
data1.sort((a, b) => a.name.localeCompare(b.name))
//注意,filter不会改变原数组,sort改变原数组
//以下做过滤排序,不改变原数组,需要接收
//升序
const resetData = data1.filter(item => item.age >= 18).sort((a, b) => a.name.localeCompare(b.name))
//降序
const resetData = data1.filter(item => item.age >= 18).sort((a, b) => b.name.localeCompare(a.name))
localeCompare方法介绍
// 前提:使用Unicode 编码。
// 支持汉字,中英文可用
'a'.localeCompare('a')// 相等:0
'a'.localeCompare('b')// a不大于b:-1
'b'.localeCompare('a')// b大于a:1
'周'.localeCompare('周')// 相等:0