【问题标题】:Reversing a string with a for loop in JavaScript在 JavaScript 中使用 for 循环反转字符串
【发布时间】:2021-10-28 16:49:34
【问题描述】:

有一个非常快速的问题要问你们,因为我对 JavaScript 还比较陌生。这个任务实际上来自 freeCodeCamp 课程,它是关于反转一个字符串,如标题所示。问题是,为什么我们可以在 str.length 行中包含 -1 整数,而我们可以只使用 i-- 在反转实际字符串的同时减少字符串计数?

这让我想起了我们在使用递归来计算一组数字(如 (n-1)、(n-2)、(n-3) 等)时所做的事情。是否存在相同的模式?或者是因为数组的索引计数,因为 0 是第一个字母而不是 1。还是别的什么?谢谢:)

function reverseString(str) {
  for (var reversedStr = "", i = str.length - 1; i >= 0; i--) {
    reversedStr += str[i];  
  }   
  return reversedStr;
}

【问题讨论】:

    标签: arrays loops for-loop counting reversing


    【解决方案1】:

    i = str.length -1 设置要查看的i 的第一个索引。由于字符串和数组在大多数语言中都是 0 索引的,因此有效索引从 0length -1str[length] 实际上会在字符串的最后一个字符之后

    此外,i = str.length - 1 仅在循环的第一次迭代开始之前执行一次i-- 在循环的每次迭代中完成,但在当前迭代的结束

    【讨论】:

    • 丹克,现在有道理了!先生,我很感激!
    【解决方案2】:

    长度计数从1开始,索引计数从0开始。对于"lorem"(let str="lorem"),它的长度是5,但它的最后一个字符的索引是4。所以如果我们不减去-1 str.length ,在第一次迭代中,我们将得到 str[5] ,它不存在并将返回 undefined 。都是从 0 开始计数,而不是从 1 开始计数。

    【讨论】:

    • 谢谢!那个 lorem 例子让我很清楚。由于循环继续迭代直到它到达它想要的语句,这是有道理的。谢谢!
    猜你喜欢
    • 2017-04-13
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多