2017-02-09 5 views
-1

チームのゴール差(フットボール)に基づいてスコアプレディクタを作成しようとしています。私はJavaScriptを初めて使いました。forループから重複した乱数を計算する

私はそれが10倍のサイコロを20回+チームのゴール差と同じようにしたいと思っています。私はこのビットをソートしていると思います。私のコードでは、コンソールに記録されている乱数のリストが得られました。今度は番号(たとえば2)を選択し、リスト内で何回発生したかを確認したいと思います。私はこれをhomeFinalScoreという新しい変数に保存したいと思います(したがって、 '2'が乱数のリストで3回発生する場合、homeFinalScore変数は3になるはずです)。私はいくつかのことを試しましたが、まだそれを並べ替えることができませんでした!

助けが非常に役立つでしょう。前もって感謝します!

var homeFinalScore = 0; 

     function calculateScore(){ 
      var homeTeam = document.getElementById("HomeTeam").value; 
      var awayTeam = document.getElementById("AwayTeam").value; 
      var homeGd = parseInt(document.getElementById("HomeGD").value); 
      var awayGd = parseInt(document.getElementById("AwayGD").value); 

      var homeGd = 20 + homeGd; 
      var awayGd = 15 + awayGd; 

      for (i = 0; i < homeGd; i++) { 
       var randNum = Math.floor(Math.random() * 11); 
       console.log(randNum); 
      } 
    } 
+1

_ "今私は(例:2)番号を選択したいと思いますし、これがリストで発生回数を確認" _何ですか"リスト"?特定の値が 'randNum'値内にあるかどうかを調べようとしていますか?または、 'randNum'値の配列を作成し、配列内に特定の値が何回出現するかを調べます。 – guest271314

+0

[randNum]がループを通過したときに特定の数字が何回発生したかを調べようとしていますが、それは意味がある場合は – CJ1410

+0

後者です。私は配列がうまくいくかもしれないと思う。 – CJ1410

答えて

1

あなたは価値の多くの出現は、アレイ内に存在するかを決定するためにArray.prototype.filter().lengthを使用し、その後、配列にrandNumをプッシュするArray.prototype.push()を使用して、配列を作成することができます。

var homeGd = 20 + 2; 
 
var awayGd = 15 + 2; 
 
var arr = []; 
 

 
function countOccurrences(n, arr) { 
 
    return arr.filter(function(value) { 
 
    return value === n 
 
    }).length; 
 
} 
 

 
for (i = 0; i < homeGd; i++) { 
 
    var randNum = Math.floor(Math.random() * 11); 
 
    arr.push(randNum); 
 
} 
 

 
console.log(arr); 
 

 
console.log(countOccurrences(2, arr));

randNumが値に等しいときに代わりに、変数をインクリメントすることができます。

var homeGd = 20 + 2; 
 
var awayGd = 15 + 2; 
 
var n = 0; 
 
var num = 2; 
 

 
for (i = 0; i < homeGd; i++) { 
 
    var randNum = Math.floor(Math.random() * 11); 
 
    console.log(randNum); 
 
    if (randNum === num) { 
 
    ++n 
 
    } 
 
} 
 

 
console.log("occurrences of 2:", n);

+0

乾杯。それが私が望んだことを成し遂げました。あなたの助けを借りてありがとうゲスト271314! – CJ1410

0

const homeGd = 10; 
 
const randomNumbers = []; // array of random numbers 
 

 
for (i = 0; i < homeGd; i++) { 
 
    randomNumbers.push(Math.floor(Math.random() * 11)); 
 
} 
 
const countBy = randomNumbers.reduce((acc, current) => { 
 
    acc[current] = (acc[current] || 0) + 1; 
 
    return acc; 
 
}, {}); 
 

 
console.log(countBy);

関連する問題