我正在尝试根据球队的球门差异(足球)创建一个得分预测器。我是JavaScript的新手,我已经成功实现了这一目标。
我希望它像是一个十次骰子旋转20次+球队的净胜球差距。我觉得我有点排序。现在用我的代码我在控制台中记录了一个随机数列表,这就是我想要的。现在我想选择一个数字(例如2)并查看列表中出现的次数。我想将此保存在一个名为homeFinalScore的新变量中(因此,如果在随机数列表中出现“2”三次,则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);
}
}
答案 0 :(得分:1)
您可以创建一个数组,使用Array.prototype.push()
将randNum
推送到数组,然后使用Array.prototype.filter()
,.length
来确定值中出现的值的数量阵列。
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));
&#13;
或者,您可以在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);
&#13;
答案 1 :(得分: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);
&#13;