JavaScript中如何根据单/多组姓名生成对应首字母缩写?
首字母提取逻辑调整方案
需求说明
现有两类姓名数据:
- 单个人名(无逗号):
Robert Smith David Smith James Johnson William - 多组人名(逗号分隔):
Robert Smith,David Smith James Johnson,Robert Smith
原代码仅能处理单个人名,生成对应首字母组合(如Robert Smith返回RS);但遇到逗号分隔的多组人名时会返回空值。需要修改代码,让多组人名场景下返回每组人名的首字母组合(如Robert Smith,David Smith返回RD)。
修改后的代码
function getInitials(Name) { // 按逗号拆分所有姓名条目 return Name.split(",").map(nameItem => { // 对单个姓名提取首字母组合 return nameItem.trim().split(" ").map(part => part[0]).reduce((acc, curr) => acc + curr, "") }).join("") }
逻辑解释
- 拆分多组姓名:用逗号
,把输入字符串拆分成独立的姓名条目 - 提取单个姓名首字母:对每个姓名条目,先去除前后空格,再按空格拆分成名字各部分,取每部分的第一个字符后拼接成该姓名的首字母组合
- 拼接结果:把所有姓名条目的首字母组合拼接成最终输出
测试验证
- 输入
Robert Smith→ 输出RS - 输入
William→ 输出W - 输入
Robert Smith,David Smith→ 输出RD - 输入
James Johnson,Robert Smith→ 输出JS
内容的提问来源于stack exchange,提问作者user3653474
相关产品推荐
相关产品推荐

