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

JavaScript循环迭代能否使用上一次的运算结果作为下一次的输入?

问题原因

你当前代码的错误有两个:

  • 每次循环都使用最初传入的原始字符串调用swap,没有复用前一次修改后的结果
  • 把每次swap返回的单次交换结果做了拼接,而不是存储为当前最新的字符串

修改后的代码

//given function 保持不变
function swap(str, first, last){
    str = str.split('');
    let firstIndex = str[first];    
    str[first] = str[last];
    str[last] = firstIndex;
    str = str.join("").toString()
    return str;
}

let word = "Hello"
function reverseSwap(str) {
  // 初始化当前字符串为原始入参
  let currentStr = str
  for (let i = 0; i < str.length/2; i++) {
    // 每次用最新的currentStr调用swap,返回值直接覆盖更新currentStr
    currentStr = swap(currentStr, i, str.length -1 - i);
  }
  return currentStr;
}
console.log(reverseSwap(word)) // 输出 olleH

实现逻辑说明

  1. 第一次循环:用原始值Hello调用swap(0,4),得到oellH赋值给currentStr
  2. 第二次循环:用oellH调用swap(1,3),得到olleH赋值给currentStr
  3. 第三次循环:用olleH调用swap(2,2),字符串无变化,currentStr保持olleH
  4. 循环结束直接返回最终的currentStr即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:54:02