2016-07-04 1 views
-1

私はその中の他の二つの連想配列を持つ配列を持っている:JavaScript:連想配列内のランダムコインフリップで頭と尾の総数を数えるには?

var coinToss = []; 

coinToss["FlipNumber"]; coinToss["Result"]; 

私はすでにランダマイザ機能作業、すべてを持っています。私はすべての「頭」と「尾」の合計を合計するのに助けが必要です。

私がやってみました:

for (var i = 0; i < coinToss.length; i++) 
{ 
     var headCount = 0, tailCount = 0; 

     if (coinToss["Result"] === 'heads') 
      headCount++; 
     else 
      tailCount++; 
} 
document.getElementByID.innerHTML += "Heads: " + headCount + " " + "Tails: " + tailCount + "<br>"; 

しかし、それだけで5コインのために、例えば、各個別の結果を出力が反転する:私がしたいことはある

//*Heads: 1 Tails: 0 * 
//*Heads: 1 Tails: 0 * 
//*Heads: 0 Tails: 1 * 
//*Heads: 1 Tails: 0 * 
//*Heads: 0 Tails: 0 * 

がアップ追加するすべての "すべての「尾」を別々に追加します。ループが繰り返されるたびに、どのように0にリセットされますか?要求されたよう

EDIT:

function coinFlip() { 
     return (Math.floor(Math.random() * 2) === 0) ? 'heads' : 'tails'; 
} 

for (var x = 0; x < 6 (/*i.e. number of coin toss*/); x++) 
{ 
    var coinToss = []; 
    coinToss["flipNumber"] = /*varies by user input*/; 
    coinToss["Result"] = (coinFlip()); 

    /*a print code that prints Flip Number:() and Result:()*/ 
} 
+2

をあなたのループ内の配列要素にアクセスしていません。どこかでインデックス 'i'を使う必要があります。 – Barmar

+1

あなたの投稿を[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)に編集してください。たとえば、コイン投げ機能や合計データの例はありません。それらのいずれかがなければ正解を得ることは困難です。 – Paul

+0

私は最近、質問の一番下に完全なコードを追加しました。 – 5120bee

答えて

0

は、これはあなたが始める必要があります。

// Make sure you're declaring your variables outside of the for loop: 
 

 
// I'm not sure what your actual array looks like, but let's say it looks something like this: 
 
var arr = [0, 0, 1, 1, 1, 0, 1, 0, 1]; 
 
arr["Result"] = "heads"; 
 
var headCount = 0, tailCount = 0; 
 

 
for (var i = 0; i < arr.length; i++) { 
 
    if (arr["Result"] === "heads") 
 
     headCount += arr[i]; 
 
    else 
 
     tailCount += arr[i]; 
 
} 
 
console.log("Heads: " + headCount + " " + "Tails: " + tailCount);

+0

私はループを使ってもっと簡単な方法を望んでいました...私はJavascriptの初心者の初心者です... – 5120bee

+0

ああ、最初にオブジェクトを作成する必要がありますか?結果は、私が実装したcoinFlip()関数に依存するので変わります: – 5120bee

+0

はい、そうでしょう。 – fuzz

0
//* these variables should be initialised outside the loop 
//* otherwise they'll get initialised with zero each time the loop runs 

var headCount = 0, tailCount = 0; 

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

    if (coinToss["Result"] === 'heads') 
     headCount++; 
    else 
     tailCount++; 
} 

document.getElementByID.innerHTML += "Heads: " + headCount + " " +  "Tails: " + tailCount + "<br>"; 
関連する問題