我有一个简单的JavaScript数组对象包含几个数字。
[267, 306, 108]
有没有一个函数能找到这个数组中最大的数?
我有一个简单的JavaScript数组对象包含几个数字。
[267, 306, 108]
有没有一个函数能找到这个数组中最大的数?
当前回答
最简单的语法,使用新的展开操作符:
var arr = [1, 2, 3];
var max = Math.max(...arr);
来源:Mozilla MDN
其他回答
不要忘记,wrap可以用Function.prototype来完成。Bind,为您提供一个“全本地”函数。
var aMax = Math.max.apply.bind(Math.max, Math);
aMax([1, 2, 3, 4, 5]); // 5
使用- Array.prototype.reduce()很酷!
[267, 306, 108].reduce((acc,val)=> (acc>val)?acc:val)
式中acc =累加器,val =当前值;
var a = [267, 306, 108].reduce((acc,val)=> (acc>val)?acc:val); 控制台.log(a);
求最大值和最小值的简单和手动的方法。这段代码比Math.max.apply快得多;我已经在数组中尝试了多达1000k个数字。
function findmax(array)
{
var max = 0;
var a = array.length;
for (counter=0;counter<a;counter++)
{
if (array[counter] > max)
{
max = array[counter];
}
}
return max;
}
function findmin(array)
{
var min = array[0];
var a = array.length;
for (counter=0;counter<a;counter++)
{
if (array[counter] < min)
{
min = array[counter];
}
}
return min;
}
你可以对数组进行降序排序,得到第一项:
[267, 306, 108].sort(function(a,b){return b-a;})[0]
你也可以使用forEach:
var maximum = Number.MIN_SAFE_INTEGER; Var数组= [-3,-2,217,9,- 8,46]; array.forEach(功能(价值){ If(值> maximum) { 最大值=值; } }); console.log(最大);/ / 217