Math.max方法背后的逻辑是什么?

时间:2013-09-03 11:19:36

标签: javascript

我想创建一个函数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。也没有原型。那么我该怎么做呢?

任何指导都将不胜感激。

2 个答案:

答案 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;
 }
相关问题