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

如何按用户姓氏对包含用户与课程的JavaScript数组排序?

按用户姓氏排序数组的解决方案

你的代码目前是按完整用户名排序,要改成按姓氏排序,核心是从user字段里提取出姓氏,再基于姓氏做比较。这里假设姓名格式是「名 姓」(包含中间名的话,最后一段是姓氏),可以用split(' ')拆分姓名,再用pop()取最后一段作为姓氏。

修改后的代码如下:

const userarray = [
    { course: "Math", user: "Steve Lewis" },
    { course: "English", user: "James Rollo" },
    { course: "IT", user: "Suzanne Collins" }
]

userarray.sort(function(a, b) {
    // 提取姓氏并转为小写
    const lastNameA = a.user.split(' ').pop().toLowerCase();
    const lastNameB = b.user.split(' ').pop().toLowerCase();
    // 按姓氏排序
    return lastNameA.localeCompare(lastNameB);
});

console.log(userarray);

运行后会得到按姓氏Collins、Lewis、Rollo排序的结果,符合需求。如果遇到更复杂的姓名格式(比如带前缀、后缀),可以根据实际情况调整姓氏提取的逻辑,但当前场景下这个方法足够好用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:05:28