Счетчик голов и хвостов - PullRequest
       7

Счетчик голов и хвостов

0 голосов
/ 03 октября 2018

Я пытаюсь создать систему головы или хвостов в javascript.Я застрял на нем, пытаясь удержать рывок, однако

Пока у меня есть:

prompt("Heads or tails")
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];

alert("Heads: " + headCount + " " + "Tails: " + tailCount);

Я не уверен, что я делаю неправильно.Любой совет?

Спасибо

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

В дополнение к ответу Эрика Х вы можете использовать Array.reduce() и деструктуризацию массива , чтобы легко получить тот же результат:

const arr = [0, 0, 1, 1, 1, 0, 1, 0, 1];

const [headCount, tailCount] = arr.reduce((r, n) => {
  r[n] += 1;
  
  return r;
}, [0, 0]);


console.log("Heads: " + headCount + " " + "Tails: " + tailCount);
0 голосов
/ 04 октября 2018

let arr = [0, 0, 1, 1, 1, 0, 1, 0, 1];

let headCount = 0, tailCount = 0;

arr.forEach(value => value ? headCount+=1 : tailCount+=1)

console.log(
  `HeadCount: ${headCount}  
TailCount: ${tailCount}`)
0 голосов
/ 03 октября 2018

похоже, вы смешиваете некоторую логику.

var arr = [0, 0, 1, 1, 1, 0, 1, 0, 1];

Я предполагаю, что 0 означает головы, а один означает хвосты?

arr["Result"] = "heads";

Это изменит свойство Result вобъект arr должен быть равен строке "возглавляет", и, вероятно, не является необходимым.

let arr = [0, 0, 1, 1, 1, 0, 1, 0, 1];

let headCount = 0,
  tailCount = 0;

for (let i = 0; i < arr.length; i++) {
  if (arr[i] === 0)
    headCount += 1;
  else
    tailCount += 1;
}

console.log("Heads: " + headCount + " " + "Tails: " + tailCount);

Это будет выполнять итерацию по массиву и увеличивать одну из переменных подсчета на основе значения массива в этом индексе.

...