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

函数内嵌循环使用return仅返回首个值的原因咨询

为什么嵌套循环里用return只返回第一个值?

这问题我当初刚学JavaScript的时候也踩过一模一样的坑!咱们来拆解一下原因:

核心区别:return vs console.log

  • return的作用:一旦函数执行到return语句,会立刻终止整个函数的执行,并把后面的值作为函数的返回结果抛出去。你嵌套循环里第一次执行到return item[i][j]时,也就是i=0,j=0的时候,函数直接停了,后面的循环迭代根本没机会跑,所以只会返回1。
  • console.log的作用:它只是把内容输出到控制台,不会中断函数或循环的执行,所以嵌套循环能从头到尾把所有元素都遍历一遍,依次输出1,2,3,4,5,6。

如果你想返回所有值,该怎么改?

如果需要把二维数组里的所有元素都返回,可以先把结果收集到一个数组里,最后再一次性return:

var arr = [[1,2], [3,4], [5,6]];
function getVal(item) {
  var result = []; // 初始化空数组存结果
  for (var i = 0; i < item.length; i++) {
    for (var j = 0; j < item[i].length; j++) {
      result.push(item[i][j]); // 把每个元素加入数组
    }
  }
  return result; // 循环结束后返回整个数组
}
console.log(getVal(arr)); // 输出 [1,2,3,4,5,6]

或者更简洁的ES6写法,用数组的flat()方法直接扁平化数组:

var arr = [[1,2], [3,4], [5,6]];
function getVal(item) {
  return item.flat();
}
console.log(getVal(arr)); // 同样输出 [1,2,3,4,5,6]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:24:35