我怎样才能轻松地获得一个JavaScript数组的最小或最大元素?
伪代码示例:
let array = [100, 0, 50]
array.min() //=> 0
array.max() //=> 100
我怎样才能轻松地获得一个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];
}
}