我正在尝试使用每个数组中最大的元素返回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的第二个参数必须是数组
答案 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(','))