Javascript 我的数组包含逗号,它干扰了array.push()

Javascript 我的数组包含逗号,它干扰了array.push(),javascript,Javascript,我正在使用freeCodeCamp,但遇到了“返回数组中最大数”的问题。问题似乎在于我的代码在第二个“for”循环中查找每四个元素。看起来它包含了数组“decArray”中的逗号。有没有关于如何解决这个问题或重新调整我的思维过程的想法?我很感激 说明: 返回由每个提供的子数组中的最大数组成的数组。为简单起见,提供的数组将正好包含4个子数组 请记住,您可以使用简单的for循环遍历数组,并使用数组语法arr[i]访问每个成员 最大的四个([[4,5,1,3],[13,27,18,26],[32,3

我正在使用freeCodeCamp,但遇到了“返回数组中最大数”的问题。问题似乎在于我的代码在第二个“for”循环中查找每四个元素。看起来它包含了数组“decArray”中的逗号。有没有关于如何解决这个问题或重新调整我的思维过程的想法?我很感激

说明:

  • 返回由每个提供的子数组中的最大数组成的数组。为简单起见,提供的数组将正好包含4个子数组
  • 请记住,您可以使用简单的for循环遍历数组,并使用数组语法arr[i]访问每个成员
  • 最大的四个([[4,5,1,3],[13,27,18,26],[32,35,37,39],[10001001857,1]])应该返回一个数组
  • 最大的四个([[13,27,18,26],[4,5,1,3],[32,35,37,39],[10001001857,1]])应该返回[27,5,391001]
  • 最大的四个([[4,9,1,3],[13,35,18,26],[32,35,97,39],[1000000,1001,857,1]])应该返回[9,35,97,1000000]
这是我的密码:

函数最大四(arr){
var decArray=[];//初始化变量以按降序对每个子数组进行排序
var finalArray=[];//初始化最终数组的变量
//将数组值按数字降序排序,而不是按字母顺序排序
函数排序编号(a,b){
返回a-b;
}
//循环初始数组以按降序对每个子数组进行排序
对于(变量i=0;i最大的四个([[4,5,1,3],[13,27,18,26],[32,35,37,39],[10001001857,1])decArray是一个数组,所以您应该将项目推送到那里,而不是将字符串附加到其中

换行

decArray += arr[i].sort(sortNumber).reverse() + ",";
用这个

decArray.push(...arr[i].sort(sortNumber).reverse());

让我知道这是否对您有效。

实际上,您的代码的问题是,当您执行此操作时,
decArray+=arr[i].sort(sortNumber).reverse()+您正在将数组转换为字符串,在最后,decArray将变成带有信息的字符串
5,4,3,1,….
,因此当您执行decArrayj时,它将返回3,因为它是字符串中的第五个元素,所以您得到了错误的答案。要解决此问题,请执行以下操作:
finalArray.push(arr[i].sort(sortNumber).reverse()[0])
并删除循环的第三个ID。或者试试下面的代码

函数最大四(arr){
var finalArray=[];

对于(i=0,i2=arr.length;离子线12,
..+”,“
应该完成什么?
函数最大四(arr){return arr.map(a=>Math.max(…a));}
@PatrickRoberts很好的解决方案!实际上,
decArray.push(…arr[i].sortNumber.reverse())
否则
decArray
将不会平坦。解释得很好。这是正确的答案。@null你的答案有效!谢谢你的帮助;我甚至没有想到我是通过添加逗号来添加字符串的。不过这很有意义。我很感谢!@LukeOrth我很高兴这有帮助。我没有否决这个,但我会投赞成票nt out虽然这是正确的信息,但这并不能回答有关最初尝试实现的问题。