我想创建一个函数max,它将返回最大值数。
我到目前为止管理:
function max() {
var arr = [];
for (var i in arguments) {
arr.push(arguments[i]);
}
arr.sort(function (a, b) {
return b - a;
});
return arr[0];
}
var test = max(30, 20, 50, 40, 100, 150, 5, 230);
var test2 = Math.max(30, 20, 50, 40, 100, 150, 5, 230);
两者都返回230;
但我不想使用内置功能,即Math.max。也没有原型。那么我该怎么做呢?
任何指导都将不胜感激。
答案 0 :(得分:0)
非常简单。这可以在O(n)
时间内循环完成array
一次。
在伪代码中:
number := first item in list.
for each item in the list
if(number < item)
number := item.
end if
end for
print("Max is: " + number).
虽然,你的方法似乎工作正常。
答案 1 :(得分:0)
试试这个
function max(arr)
{
var largest;
if(arr.length>0)
largest=arr[0];
else
largest = 0;
for(var i=0;i<arr.length;i++)
{
if(arr[i]>largest)
largest = arr[i];
}
return largest;
}