我有一个简单的JavaScript数组对象包含几个数字。

[267, 306, 108]

有没有一个函数能找到这个数组中最大的数?


当前回答

你可以使用apply函数,调用Math.max:

var array = [267, 306, 108];
var largest = Math.max.apply(Math, array); // 306

它是如何工作的?

apply函数用于调用具有给定上下文和参数的另一个函数,以数组形式提供。min和max函数可以接受任意数量的输入参数:Math。Max (val1, val2,…valN)

如果我们调用:

Math.min.apply(Math, [1, 2, 3, 4]);

apply函数将执行:

Math.min(1, 2, 3, 4);

注意,第一个参数context对于这些函数并不重要,因为它们是静态的。不管传递什么作为上下文,它们都将工作。

其他回答

试试这个

function largestNum(arr) {
  var currentLongest = arr[0]

  for (var i=0; i< arr.length; i++){
    if (arr[i] > currentLongest){
      currentLongest = arr[i]
    }
  }

  return currentLongest
}

你可以使用apply函数,调用Math.max:

var array = [267, 306, 108];
var largest = Math.max.apply(Math, array); // 306

它是如何工作的?

apply函数用于调用具有给定上下文和参数的另一个函数,以数组形式提供。min和max函数可以接受任意数量的输入参数:Math。Max (val1, val2,…valN)

如果我们调用:

Math.min.apply(Math, [1, 2, 3, 4]);

apply函数将执行:

Math.min(1, 2, 3, 4);

注意,第一个参数context对于这些函数并不重要,因为它们是静态的。不管传递什么作为上下文,它们都将工作。

一个递归的方法如何使用三元运算符

const findMax = (arr, max, i) => arr。长度=== I ?马克斯: findMax(arr, arr[i] > max ?Arr [i]: max, ++i) Const arr = [5,34, 2,1,6,7,9,3]; const max = findMax(arr, arr[0], 0) console.log (max);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max

const inputArray = [1,3,4,9,16,2,20,18]; const maxNumber = Math.max(…inputArray); console.log (maxNumber);

一个for/of循环解决方案:

Const数= [2,4,6,8,80,56,10]; const findMax =(…numbers) => { let currentMax = numbers[0];/ / 2 For (const number of numbers) { if (number > currentMax) { console.log(数字,currentMax); currentMax = number; } } console.log('最大',currentMax); 返回currentMax; }; findMax数量(…);