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

JavaScript:如何返回从指定字符起始的字符串?代码问题求助

解决my_strchr函数不包含目标字符的问题

你的代码问题出在截取起始位置的计算上:你错误地给str.indexOf(c)加上了c.length。因为这里的c是单个字符,c.length的值是1,导致截取的起始位置跳过了目标字符的索引,自然就把c排除在了返回结果之外。

修正后的代码很简单,直接用目标字符的索引作为substring的起始位置即可:

function my_strchr(str, c) {
  const charIndex = str.indexOf(c);
  // 找不到目标字符时返回空字符串,符合strchr的行为逻辑
  return charIndex === -1 ? '' : str.substring(charIndex);
}

测试你给出的例子:输入"abcabc"和"b"时,str.indexOf("b")返回1,substring(1)会从索引1的位置(也就是字符b)开始截取,最终返回"bcabc",完全符合预期。

另外针对题目中“终止空字符被视为字符串的一部分”的要求,如果你需要兼容查找空字符的场景,可以补充特殊处理:

function my_strchr(str, c) {
  // 查找空字符时,返回对应终止空字符位置的子串(空字符串)
  if (c === '') {
    return str.substring(str.length);
  }
  const charIndex = str.indexOf(c);
  return charIndex === -1 ? '' : str.substring(charIndex);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:50:19