2017-06-02 60 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