如何在JavaScript中按Name字段对对象数组进行排序?
JavaScript 按对象Name字段排序数组
要实现按对象的Name字段对数组进行升序排序,你可以使用数组的sort()方法,配合localeCompare()处理字符串比较逻辑,具体操作如下:
1. 定义原始数组
先将你的数组整理为可运行的代码形式:
const people = [ { Age: 10, Name: 'John' }, { Age: 25, Name: 'Maria' }, { Age: 23, Name: 'Ana' }, { Age: 27, Name: 'Pedro' } ];
2. 执行排序
方式一:原地排序(直接修改原数组)
people.sort((a, b) => a.Name.localeCompare(b.Name));
方式二:生成新数组(不修改原数组)
如果需要保留原始数组,可以先复制数组再排序:
const sortedPeople = [...people].sort((a, b) => a.Name.localeCompare(b.Name));
3. 排序结果
执行后得到的数组与你期望的一致:
[ { Age: 23, Name: 'Ana' }, { Age: 10, Name: 'John' }, { Age: 25, Name: 'Maria' }, { Age: 27, Name: 'Pedro' } ]
补充说明
localeCompare()会根据语言环境比较两个字符串,返回对应数值:
- 返回负数:
a.Name排在b.Name之前 - 返回0:两个字符串内容相同
- 返回正数:
a.Name排在b.Name之后
该返回值完全匹配sort()方法对比较函数的要求。
内容的提问来源于stack exchange,提问作者Jessica Boaventura
相关产品推荐
相关产品推荐

