JS数组对象——中文按照首字母排序(分组)sort()、localeCompare()
// 假设我们有一个对象数组,对象中包含name属性,我们要根据name属性的中文首字母进行排序分组
let items = [
{ name: '张三' },
{ name: '李四' },
{ name: '王五' },
{ name: '赵六' },
{ name: '陈七' }
];
// 使用Array.prototype.sort()方法和String.prototype.localeCompare()方法进行排序
items.sort((a, b) => a.name.localeCompare(b.name, 'zh-Hans-CN', { sensitivity: 'accent' }));
// 输出排序后的数组
console.log(items);
这段代码首先定义了一个对象数组items
,然后使用sort()
方法对数组进行排序,并使用localeCompare()
方法在中文环境下比较字符串。localeCompare()
的第一个参数是需要比较的字符串,第二个参数指定了语言环境,这里是简体中文 ('zh-Hans-CN'),第三个参数是选项对象,指定了发音敏感性 ('sensitivity')。排序后的数组将按照中文字符的顺序进行排序。
评论已关闭