2016-09-24 36 views
-4

我一直在玩一个游戏编码,以及最近发现这个解决方案编码的挑战,但我实在无法理解。了解Math.max

我试过在Math.max阅读起来,但我不能换我的头周围。

什么在此代码是怎么回事?

var n = 6; 
 
var items = [6, 2, 1, 6, 0, 9]; 
 
var high = items[0]; 
 
var loss = 0; 
 

 
for (var i = 1; i < n; i++) { 
 
    var v = parseInt(items[i]); 
 
    high = Math.max(high, v); 
 
    loss = Math.max(loss, high - v); 
 
} 
 

 
console.log(-1 * loss);

+1

你有什么麻烦的理解? – vlaz

+2

'Math.max'返回两个数字中较大的一个。 – Li357

+1

parseInt函数是不必要的,因为它已经是一个数 – Endless

回答

0

在这样的情况下,这是非常有帮助的,以输出到控制台中的变量,以更好地了解发生了什么:

var n = 6; 
 
var items = [6, 2, 1, 6, 0, 9]; 
 
var high = items[0]; 
 
var loss = 0; 
 
    
 
for (var i = 1; i < n; i++) { 
 
    console.log("[Roll " + i + "]"); 
 
    var v = parseInt(items[i]); 
 
    high = Math.max(high, v); 
 
    loss = Math.max(loss, high - v); 
 
    console.log("v: " + v + "\nhigh: " + high + "\nloss: " + loss); 
 
} 
 
    
 
console.log(-1 * loss);

正如其他人所说在评论中,Math.max非常简单le,只是返回给它的参数的最大数量。

例如:

> Math.max(5, 7, 9202902) 
< 9202902 
+1

@AndrewL。我认为问题存在的问题尚不清楚。 OP想要了解'Math.max',Rani会回答这个问题。然而,OP也对代码片段感到困惑,并且展示如何调试它也能够解决这个问题。当然,逐行浏览也是一个答案,但我们不知道OP会发现它显然是混淆的。不过,添加简单的日志语句使代码非常自我解释。 – vlaz