我怎样才能轻松地获得一个JavaScript数组的最小或最大元素?

伪代码示例:

let array = [100, 0, 50]

array.min() //=> 0
array.max() //=> 100

当前回答

我想分享一下我简单易懂的解决方案。

对于最小值:

var arr = [3, 4, 12, 1, 0, 5]; 是我的 = arr[0]; for (var k = 1; k < arr.length; k++) { if (arr[k] < min) { 分钟 = arr[k]; } } console.log(“我的冰淇淋:”+分钟);

对于最大值:

Var arr = [3,4,12,1,0,5]; Var Max = arr[0]; For (var k = 1;K < arrr .length;k + +) { If (arr[k] > max) { Max = arr[k]; } } console.log("Max is: " + Max);

其他回答

对于包含对象而不是数字的数组:

arr = [
  { name: 'a', value: 5 },
  { name: 'b', value: 3 },
  { name: 'c', value: 4 }
]

你可以使用reduce来获取最小值(min)的元素

arr.reduce((a, b) => a.value < b.value ? a : b)
// { name: 'b', value: 3 }

或最大值(max)

arr.reduce((a, b) => a.value > b.value ? a : b)
// { name: 'a', value: 5 }

这个问题的递归解

const findMinMax = (arr, max, min, i) => arr。长度=== I ?{ 分钟, 马克斯 }: findMinMax ( 加勒比海盗, r[i] > Max ?Arr [i]: max, Arr [i] < min ?Arr [i]: min, + + i) Const arr = [5,34, 2,1,6,7,9,3]; const max = findMinMax(arr, arr[0], arr[1], 0) console.log (max);

让arr =[76年20日8日,29日,7日,21日,9] Math.max。应用(数学,arr);/ / 76

还有一种方法:

var arrayMax = Function.prototype.apply.bind(Math.max, null);

用法:

var max = arrayMax([2, 5, 1]);

如果你需要性能,那么对于小数组来说这是最好的方法:

var min = 99999;
var max = 0;
for(var i = 0; i < v.length; i++)
{
    if(v[i] < min)
    {
        min = v[i];
    }
    if(v[i] >= max)
    {
        max = v[i];
    }
}