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

JavaScript数组解析与字符串构造:多中间名缩写功能实现问题

问题排查

你的代码存在两个核心逻辑错误导致多中间名测试不通过:

  • 条件判断语句错误:if (name.length = 2) 首先误用赋值运算符=代替比较运算符,其次错误判断原字符串长度,应该判断拆分后的姓名数组长度,数组长度≤2时(单名、仅有名和姓)直接返回原姓名即可。
  • 循环内赋值逻辑错误:每次遍历中间名时都会覆盖output的值,仅保留当前遍历到的中间名缩写,之前的中间名缩写会被直接覆盖,自然只能拿到最后一个中间名的缩写结果。
优化后可通过所有用例的代码
function initializeNames(name) {
  const nameArr = name.split(' ');
  // 少于3个组成部分的姓名直接返回原内容
  if (nameArr.length <= 2) return name;
  // 提取首名和姓氏
  const firstName = nameArr[0];
  const lastName = nameArr.at(-1);
  // 所有中间名统一转为首字母缩写
  const middleAbbrs = nameArr.slice(1, -1).map(item => `${item[0]}.`);
  // 拼接所有部分返回结果
  return [firstName, ...middleAbbrs, lastName].join(' ');
}
验证说明

上述代码可覆盖所有测试用例:

  • 单名Dimitri:数组长度为1,直接返回原内容
  • 两部分姓名Jack Ryan:数组长度为2,直接返回原内容
  • 单个中间名Lois Mary Lane:中间名处理为M.,拼接后得到Lois M. Lane
  • 多个中间名Alice Betty Catherine Davis:中间名处理为B.和C.,拼接后得到Alice B. C. Davis

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:09:03