-3

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

任何指导将不胜感激。

4

2 回答 2

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;
 }
于 2013-09-03T11:23:09.390 回答
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).

虽然,你的方法似乎工作正常。

于 2013-09-03T11:21:46.223 回答