我有一个简单的JavaScript数组对象包含几个数字。
[267, 306, 108]
有没有一个函数能找到这个数组中最大的数?
我有一个简单的JavaScript数组对象包含几个数字。
[267, 306, 108]
有没有一个函数能找到这个数组中最大的数?
当前回答
运行这个:
Array.prototype.max = function(){
return Math.max.apply( Math, this );
};
现在尝试[3,10,2].max()返回10
其他回答
你可以对数组进行降序排序,得到第一项:
[267, 306, 108].sort(function(a,b){return b-a;})[0]
我发现对于更大的数组(~100k个元素),它实际上是用一个简单的for循环迭代数组,执行比Math.max.apply()好30%:
function mymax(a)
{
var m = -Infinity, i = 0, n = a.length;
for (; i != n; ++i) {
if (a[i] > m) {
m = a[i];
}
}
return m;
}
基准测试结果
一个递归的方法如何使用三元运算符
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);
不要忘记,wrap可以用Function.prototype来完成。Bind,为您提供一个“全本地”函数。
var aMax = Math.max.apply.bind(Math.max, Math);
aMax([1, 2, 3, 4, 5]); // 5
在数组中返回最大数字的解。
const largestOfFour = arr => {
let arr2 = [];
arr.map(e => {
let numStart = -Infinity;
e.forEach(num => {
if (num > numStart) {
numStart = num;
}
})
arr2.push(numStart);
})
return arr2;
}