You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中对字符串形式的姓名列表进行字母排序?

正确实现方法

要把逗号分隔的字符串转成按字母排序的数组,需要三个关键步骤:

  1. 拆分字符串为数组:用split(',')把字符串按逗号分割成包含各个名字的数组
  2. 对数组进行排序:调用数组的sort()方法,配合localeCompare()实现自然语言的字母排序
  3. (可选)格式化输出:用JSON.stringify()带参数美化输出格式,和示例一致

完整代码示例

let friends = 'Moe,Larry,Curly,Jane,Emma,Elizabeth,Elinor,Mary,Darcy,Grey,Lydia,Harriet';

// 拆分字符串并按字母排序
let sortedFriends = friends.split(',').sort((a, b) => a.localeCompare(b));

// 输出带缩进的格式化结果
console.log(JSON.stringify(sortedFriends, null, 2));

代码解释

  • split(','):将原始字符串拆分为['Moe', 'Larry', ...]形式的名字数组
  • sort((a, b) => a.localeCompare(b)):localeCompare()会按照自然语言的字母顺序排序,默认不区分大小写,能保证Emma、Elizabeth这类名字按正确顺序排列
  • JSON.stringify(sortedFriends, null, 2):第三个参数2指定用2个空格缩进,输出和示例完全一致的换行格式

之前方法无效的原因

  • friends.sort():sort()是数组专属方法,字符串没有该方法,直接调用无效果
  • Object.values(friends):字符串会被当作类数组对象处理,该方法会把每个字符单独提取出来,所以得到的是单个字母的数组,不是完整的名字

内容的提问来源于stack exchange,提问作者msc1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:42:50