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

JavaScript函数return返回值无法获取,仅console.log生效求解决

问题分析与修正

1. 为什么return没看到输出?

你的函数确实通过return jawaban返回了结果,但调用merge([1, 2, 3], 1, [5, 9, 2], 2);后,没有对返回值做任何处理——JavaScript不会自动打印函数的返回值,除非你主动输出它。可以这样修改调用方式:

// 方式1:把返回值存到变量后打印
const result = merge([1, 2, 3], 1, [5, 9, 2], 2);
console.log(result);

// 方式2:直接打印函数调用结果
console.log(merge([1, 2, 3], 1, [5, 9, 2], 2));

2. 代码里的逻辑错误

原代码还有两个影响结果的问题:

  • 循环越界:i <= m和j <= n会取到数组的无效元素。比如你传的m=1,nums1的有效元素索引是0,nums1[1]会返回undefined;同理nums2的有效索引应该是0到n-1,循环条件要改成i < m和j < n。
  • 排序逻辑问题:Array.sort()默认按字符串Unicode码排序,对数字排序会出错(比如10会排在2前面),需要传入比较函数实现数字升序排序。

修正后的完整代码:

var merge = function(nums1, m, nums2, n) {
  let hasil = [];
  // 只取nums1的前m个有效元素
  for (let i = 0; i < m; i++) {
    hasil.push(nums1[i]);
  }
  // 只取nums2的前n个有效元素
  for (let j = 0; j < n; j++) {
    hasil.push(nums2[j]);
  }
  // 数字升序排序
  let jawaban = hasil.sort((a, b) => a - b);
  return jawaban
};

// 调用并打印返回值
console.log(merge([1, 2, 3], 1, [5, 9, 2], 2)); // 输出:[1,2,5,9]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:10:24