javascript - 返回数组中的最大数字

标签 javascript arrays

我在 FreeCodeCamp 中为这个任务苦苦挣扎,我不知道哪里错了,为什么结果不是我期望的。请帮助我。提前致谢!

<!DOCTYPE HTML>
<html>

<head>
  <script>
    function largestOfFour(arr) { //loop every inside array in the outside array.
      var data = []; //storing the output array
      for (var x = 0; x < arr.length; x++) {
        data[x] = largestOfSingle(arr[x]);
      }
      console.log(data); // the result should be [27,5,39,1000]
    }

    function largestOfSingle(myArr) { //find the largest element in every inside array.
      if (myArr.length == 1)
        return myArr[0];
      if (myArr[0] >= myArr[1])
        return largestOfSingle(myArr.splice(1, 1));
      if (myArr[0] < myArr[1])
        return largestOfSingle(myArr.slice(1, myArr.length));
    }
  </script>
</head>

<body onload="largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]);">
  <!--two dimensional array-->
</body>
<html>

最佳答案

问题出在这里:

if (myArr[0] >= myArr[1])
  return largestOfSingle(myArr.splice(1, 1));

Splice 返回拼接出来的东西,而不是原始数组。可能会:

if (myArr[0] >= myArr[1]){
  myArr.splice(1, 1)
  return largestOfSingle(myArr);
}

但在我看来,可以通过简单的逻辑来真正简化:

var max = - Infinity;
for(var i = 0; i < myArr.length; i++)
  if(myArr[i] > max) max = myArr[i];
return max;

关于javascript - 返回数组中的最大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47182902/

相关文章:

java - 使用 StringTokenizer 以数组形式获取数据,Java

PHP 数组包含太多元素

java - 使用 int[][] a = new int[0][N] 清除时 java 中的二维数组长度

javascript - 使用类/构造函数与变量方法时的范围不同

javascript - 如何在javascript中动态替换类名

javascript - 在 jQuery 中检测单个按键事件上的多个键

javascript - AngularJS 显示数组中的列表

javascript - async.parallel 中的回调如何工作(它来自哪里?)

javascript - 将时间字符串从 hhmm 转换为 hh :mm format in javascript

java - Java中以数组作为参数的子程序