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

JavaScript:getCapitals函数返回结果不符合预期的问题排查

修正getCapitals函数以返回大写字母数组

原代码存在两个核心问题,导致输出不符合预期:

  • 错误地将结果容器初始化为包含空字符串的数组 [''],而非空数组 []。当对数组使用 += 操作符时,数组会被隐式转换为字符串([''].toString() 结果为空字符串),后续拼接大写字母会生成字符串,而非数组元素集合。
  • 使用 += 来添加元素的方式错误,这会触发数组到字符串的类型转换,最终返回的是拼接后的字符串,而非目标数组。

修正后的代码

function getCapitals(string) {
  var result = [];
  for (var i = 0; i < string.length; i++) {
    if (string[i] === string[i].toUpperCase()) {
      result.push(string[i]);
    }
  }
  return result;
}

console.log(getCapitals("Madjbaj Avveyhe")); // 输出 ["M", "A"]

更简洁的实现方式

你也可以利用数组的高阶函数简化代码逻辑:

function getCapitals(string) {
  return string.split('').filter(char => char === char.toUpperCase());
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:11:20