2017-06-02 16 views
0

的最高轧辊的功能此功能应该返回在给定的骰子阵列前最高掷骰数 :[2,3,5,1,2] - > 5写入返回骰子

我有一个函数应该被链接到我的新函数,但不记得我开始的函数中的什么或在哪里,我应该链接它们。

rollDie: function rollDie() { 
 
     return Math.floor((Math.random() * 6) + 1); 
 
    } 
 

 
    
 
    rollNDice: function rollNDice(n) { 
 
     var result = [ ]; 
 
    for (var i = 0; i < n; i++) { 
 
     result.push(rollDie()); 
 
    }       
 
    return result;    
 
} 
 
console.log(rollNDice(4));

这是我的,我有新的代码,我开始链接的原始代码。

function maxRoll(arr){ 
 
var largest_num = [ ]; 
 
for(var i=0; i > arr.length; i++){ 
 
    if(arr[i] < largest_num){ 
 
    largest_num = arr[i]; 
 
    } 
 
} 
 
return largest_num; 
 
}

我的新代码,我需要在某个地方将我的原代码。

+0

你是什么意思 “链接将他们”? – Carcigenicate

+0

@Carcigenicate或'call'?我不确定确切的术语是什么。但就像我在rollNDice里面叫rollDie一样。我无法像以前那样以这种方式来运作。 –

+0

真的,你不应该调用生成函数的函数来计算出最高数字是什么。在函数之外生成数字,将它们放入列表中,然后将其传递给函数。函数应该尽可能少地执行。 – Carcigenicate

回答

5

您可以使用Math.max功能找到一个阵列数量最多:

const rolls = [4, 7, 3, 2, 9, 5]; 
 
const maxRoll = Math.max(...rolls); 
 

 
console.log(maxRoll);

您的实现的问题是你有一个无限循环,因为你如果i检查大于length而不是小于length

for(var i=0; i > arr.length; i++) 

应该是:

for(var i=0; i < arr.length; i++) 

你也大于检查翻转:

arr[i] < largest_num 

应该是:

arr[i] > largest_num