在数组的数组中查找最大值

Finding Largest Values in Array of Arrays

本文关键字:数组 最大值 查找      更新时间:2023-09-26

我试图返回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的第二个参数必须是一个数组

使用map函数

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

目前,您正在向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;
}

你传递给函数的不是数组的数组——你传递给它的是两个数组。:)

试试这个:

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

此外,定义的largestfour在第一次运行时返回最大值——实际上,返回数组的数组中第一个数组的最大值。

要这样做,您可以保存每次的最大值,然后返回该最大值。

或者利用join()对嵌套数组的明显扁平化,这样做:

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