【问题标题】:For loop - Uncaught TypeError: str[i] is undefined - why?For 循环 - 未捕获的类型错误:str[i] 未定义 - 为什么?
【发布时间】:2021-04-12 07:55:21
【问题描述】:

我正在做一个凯撒代码练习并且很早就遇到了一个问题,这似乎让我感到困惑。任何帮助,将不胜感激!这是我的代码:

const caesar = function(str, number) {

    let solved = "";

  for (let i = 0; i <= str.length; i++) {

     let asciiNum = str[i].charCodeAt();

     if (asciiNum >- 65 && asciiNum <= 90) {
       solved += String.fromCharCode(asciiNum + number);
     }
  }
};

错误:

Uncaught TypeError: str[i] is undefined
    caesar http://127.0.0.1:5501/index.html:102
    <anonymous> debugger eval code:1

为什么 str[i] 未定义?我很困惑!

【问题讨论】:

  • i &lt;= str.length -> i &lt; str.length 你的循环越界了。

标签: javascript string for-loop


【解决方案1】:

重写你的for循环如下:

for (let i = 0; i < str.length; i++) {}

它必须是i &lt; str.length,否则在最后一次迭代中,str[i] 将解析为 undefined。

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2021-05-13
    • 2021-08-11
    • 2020-12-21
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 2018-10-21
    相关资源
    最近更新 更多