2016-07-04 4 views
-1

나는 그 안에 두 개의 다른 연관 배열을 가지고 배열을 가지고있다. 나는 모든 '머리'와 '꼬리'의 합계에 도움이 필요합니다.JavaScript : 연관 배열 내의 임의의 코인 뒤집기에서 머리와 꼬리의 총 개수를 계산하는 방법?</p> <pre><code>var coinToss = []; coinToss["FlipNumber"]; coinToss["Result"]; </code></pre> <p>내가 이미 랜덤 함수 작업과 모든 것을 가지고 :

내가하고 시도 :

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으로 재설정됩니까? 요청에 따라

편집 :

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

루프를 사용하는 좀 더 간단한 방법을 기대하고 있습니다 ... 저는 자바 초보자 초보자입니다 ... – 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>";