查找数组数组中的最大值

时间:2015-09-16 16:47:23

标签: javascript arrays

我正在尝试使用每个数组中最大的元素返回arr,但是我收到一条错误消息。感谢。

function largestOfFour(arr) {
  for (var i = 0; i<arr.length; i++) {
    return Math.max.apply(Math, arr[i]);
    }
}

largestOfFour([1,2,4],[23,22,0])

  

TypeError:Function.prototype.apply的第二个参数必须是数组

3 个答案:

答案 0 :(得分:1)

目前,您要向largestOfFour发送两个参数,但您应该发送一个参数,每个索引都有一个数组。

largestOfFour([[1,2,4],[23,22,0]])

为了获得您正在寻找的返回结果。

function largestOfFour(arr) {
  var returnArray = []
  for (var i = 0; i<arr.length; i++) {
    returnArray.push(Math.max.apply(Math, arr[i]));
    }

  return returnArray;
}

答案 1 :(得分:1)

使用map功能

array.map(function(array) {
  return Math.max.apply(Math, array)
})

答案 2 :(得分:1)

你没有将你的函数传递给一个数组数组 - 你将它传递给两个数组。 :)

试试这个:

largestOfFour([[1,2,4],[23,22,0]])
              ^                 ^

此外,maximumOfFour,如定义的那样,在第一次运行时返回最大值 - 实际上,返回数组数组中第一个数组的最大值。

为此,您可以每次保存最大值,然后返回最大值。

或利用join()的嵌套数组的明显扁平化并执行此操作:

Math.max.apply(null, a.join().split(','))