所以我有一个骰子滚动功能。我想滚动2次骰子20次,每次滚动时,我想添加这些数字,然后我想看看总和出现的次数,并将该数字放入数组中。一个数字出现在一个数组中的时间计数
function Dice() {
this.roll = function() {
var randomValue = Math.ceil(Math.random() * 6);
this.side = randomValue;
return this.side;
}
}
var dice1 = new Dice();
var dice2 = new Dice();
function getAmount() {
var finalArray = [];
function diceSum() {
var sum = dice1.roll() + dice2.roll();
return sum;
}
var trackSum = [];
for (var i = 1; i <= 20; i++) {
trackSum.push(diceSum());
}
var reduced = trackSum.reduce(function(acc, sum, i, arr) {
return acc.i += sum;
}, {});
return reduced;
}
所以我得到trackSum
其具有20个号码中的阵列,每个数字是2骰子的掷骰总和。如果sum = 2
并出现5次,sum = 4
,出现2次,sum = 3
,出现1次,最终阵列应该像
[5, 2, 1]
到目前为止,我尝试了reduce
方法,filter
和forEach
。我只是无法弄清楚如何比较数字,看看它出现的次数。任何帮助,将不胜感激。谢谢!
你是否在意追踪卷/次数的顺序?或者你只是想知道每次发生的次数? – sethro