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

JavaScript中for循环内的return语句是否会提前终止整个循环?

解答

你的判断完全正确:在函数内部的循环体中执行return语句时,会立刻终止整个循环流程,同时直接退出当前函数,将return后的值返回给函数调用位置,后续所有未执行的循环迭代都不会再运行。

你修改后的代码仅输出第一个元素的原因非常明确:
循环第一次迭代时i=0,程序正常拼接出第一个全名John Stewart,执行到return fullNameArray.push(temp)时,会先完成push操作把第一个元素存入数组,随后立刻触发return逻辑:不仅for循环直接终止,整个fullName函数也直接退出,后续i=1、i=2、i=3对应的拼接、push逻辑完全没有执行机会,最终数组里自然只有第一个元素。

额外提两个你这段代码里需要注意的细节:

  • Array.push()方法的返回值是执行push操作后数组的新长度,并不是数组本身,你把push的执行结果放在return后面,就算逻辑位置对,返回的也不是你想要的全名数组。
  • 不建议在函数内部直接操作全局作用域的fullNameArray,更好的写法是在函数内部定义结果数组,等所有循环逻辑执行完成后,再在循环外部return结果,参考写法如下:
let firstName = ["John","Maria","Brandon","Gaby"];
let lastName = ["Stewart","Rambeau","Waffel","Sinclair"];

function fullName (array1,array2){
    let fullNameArray = [];
    let temp;
    for (let i=0;i<array2.length;i++){
       temp = array1[i] + " " + array2[i];
       fullNameArray.push(temp);
    }
    // 所有元素处理完成后再返回结果
    return fullNameArray;
};

const result = fullName(firstName,lastName);
console.log(result);
// 预期输出:['John Stewart','Maria Rambeau','Brandon Waffel','Gaby Sinclair']

你可以顺便记一下三个常用循环控制逻辑的区别,避免后续写代码再踩坑:

  • return:仅能在函数内部使用,执行后直接终止循环+退出所在函数,返回指定值
  • break:仅终止当前所在的循环,不会退出函数,循环之后的函数代码会继续执行
  • continue:跳过本次循环的剩余代码,直接进入下一轮循环判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:06:05