Javascript 返回的数组不等于原始数组

Javascript 返回的数组不等于原始数组,javascript,arrays,Javascript,Arrays,我试图在LeetCode上解决这个问题: 给定两个已排序整数数组nums1和nums2,将nums2作为一个已排序数组合并到nums1中 注:nums1和nums2中初始化的元素数分别为m和n 您可以假设nums1有足够的空间大小(等于m+n)来容纳nums2中的其他元素 我最终得出了以下代码: var merge = function(nums1, m, nums2, n) { var nums = []; nums1.length = m; nums2.length = n;

我试图在LeetCode上解决这个问题:

给定两个已排序整数数组nums1和nums2,将nums2作为一个已排序数组合并到nums1中

注:nums1和nums2中初始化的元素数分别为m和n

您可以假设nums1有足够的空间大小(等于m+n)来容纳nums2中的其他元素

我最终得出了以下代码:

var merge = function(nums1, m, nums2, n) {
  var nums = [];
  nums1.length = m;
  nums2.length = n;
  nums = nums.concat(nums1);
  console.log(nums);
  nums = nums.concat(nums2);
  console.log(nums);
  nums = nums.sort();
  console.log(nums);
  return nums;
}
这就是“运行代码”所说的:

你的意见

[1,2,3,0,0,0]

三,

[2,5,6]

三,

stdout

[1,2,3]

[1,2,3,2,5,6]

[1,2,2,3,5,6]

输出:

[1,2,3]

期望

[1,2,2,3,5,6]

如果引号不清楚,则为图像版本

当我在console.logging数组时,答案是正确的,但由于某些原因,返回数组会给出完全不同的输出


有人能帮忙吗?

我想这里的提示是nums1足够大,可以容纳n+m个值。因此,解决这个问题的方法是向后遍历这两个数组,边走边填充nums1中的空白。因此,例如,对于循环的第一次迭代,您将比较nums1[n-1]和nums2[m-1],并将较大者放入nums1[n+m-1]。然后,只要其中一个数组中有值,就可以继续执行此操作,如果其中一个数组用完,则只能从另一个数组进行复制:

常量合并=函数nums1,m,nums2,n{ n-;m-; 对于设i=m+n+1;i>=0;i-{ nums1[i]=m<0 | | n>=0&&nums2[n]>nums1[m]?nums2[n-]:nums1[m-]; } 返回nums1; }
logmerge[1,2,3,0,0,0],3,2,5,6,3 我认为这里的暗示是nums1足够大,可以容纳n+m个值。因此,解决这个问题的方法是向后遍历这两个数组,边走边填充nums1中的空白。因此,例如,对于循环的第一次迭代,您将比较nums1[n-1]和nums2[m-1],并将较大者放入nums1[n+m-1]。然后,只要其中一个数组中有值,就可以继续执行此操作,如果其中一个数组用完,则只能从另一个数组进行复制:

常量合并=函数nums1,m,nums2,n{ n-;m-; 对于设i=m+n+1;i>=0;i-{ nums1[i]=m<0 | | n>=0&&nums2[n]>nums1[m]?nums2[n-]:nums1[m-]; } 返回nums1; }
logmerge[1,2,3,0,0,0],3,2,5,6,3;返回一个新数组nums。您可能应该返回nums1。如果console.lognums提供了预期的输出,但nums的返回值不同,但没有更改任何内容,那么您必须返回num1而不是numsXD@VLAZ但我将两个数组连接到NUM,因此,返回nums1将只返回一个数组,而不返回我必须连接的第二个数组instead@KAI抱歉,我没有清楚地表达自己的意思-您应该使用nums1-测试似乎只是检查它,而不是返回值。创建新数组时,不会更改nums1,而是返回一个新数组nums。您可能应该返回nums1。如果console.lognums提供了预期的输出,但nums的返回值不同,但没有更改任何内容,那么您必须返回num1而不是numsXD@VLAZ但我将两个数组连接到NUM,因此,返回nums1将只返回一个数组,而不返回我必须连接的第二个数组instead@KAI抱歉,我没有清楚地表达自己的意思-您应该使用nums1-测试似乎只是检查它,而不是返回值。当你创建一个新数组时,你不会改变nums1,谢谢。这是完全有道理的,而且确实useful@KAI不用担心,我很高兴能帮上忙。非常感谢。这是完全有道理的,而且确实useful@KAI别担心,我很高兴能帮上忙。