我有一个简单的JavaScript数组对象包含几个数字。
[267, 306, 108]
有没有一个函数能找到这个数组中最大的数?
我有一个简单的JavaScript数组对象包含几个数字。
[267, 306, 108]
有没有一个函数能找到这个数组中最大的数?
当前回答
根据@Quasimondo的评论,这似乎被大部分人忽略了,下面的似乎有最好的表现,如下所示:https://jsperf.com/finding-maximum-element-in-an-array。请注意,虽然对于问题中的数组,性能可能没有显著影响,但对于大型数组,性能变得更重要,并且再次指出,如果数组长度超过65535,使用Math.max()甚至不起作用。看看这个答案。
function largestNum(arr) {
var d = data;
var m = d[d.length - 1];
for (var i = d.length - 1; --i > -1;) {
if (d[i] > m) m = d[i];
}
return m;
}
其他回答
使用Array.reduce:
[0,1,2,3,4].reduce(function(previousValue, currentValue){
return Math.max(previousValue,currentValue);
});
使用冒泡排序找到最大和最小值
Var arr = [267, 306, 108]; (i = 0 k = 0;我< arr.length;我+ +){ (j = 0;<我;j + +) { 如果(arr[我]> arr [j]) { K = arr[i]; Arr [i] = Arr [j]; r[j] = k; } } } console.log('最大数字:'+ arr[0]); console.log('最小值:'+ arr[arr.length-1]);
你可以试试这个,
var arr = [267, 306, 108];
var largestNum = 0;
for(i=0; i<arr.length; i++) {
if(arr[i] > largest){
var largest = arr[i];
}
}
console.log(largest);
求多维数组中最大的数
var max = [];
for(var i=0; arr.length>i; i++ ) {
var arra = arr[i];
var largest = Math.max.apply(Math, arra);
max.push(largest);
}
return max;
一个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数量(…);