【发布时间】:2017-11-18 00:51:49
【问题描述】:
从下面创建一个掷硬币数组的程序开始,我必须添加一个函数来打印正面的总数和反面的总数。该函数必须将翻转数组作为参数。
这是给定的程序:
var NUM_FLIPS = 100;
function start(){
var flips = flipCoins();
printArray(flips);
countHeadsAndTails();
}
// This function should flip a coin NUM_FLIPS
// times, and add the result to an array. We
// return the result to the caller.
function flipCoins(){
var flips = [];
for(var i = 0; i < NUM_FLIPS; i++){
if(Randomizer.nextBoolean()){
flips.push("Heads");
}else{
flips.push("Tails");
}
}
return flips;
}
function printArray(arr){
for(var i = 0; i < arr.length; i++){
println(i + ": " + arr[i]);
}
}
我需要编写这个函数:
function countHeadsAndTails(flips) {
//Write the program here
}
这是我到目前为止所拥有的,但该功能无法按预期工作。我被困在if 声明中的内容。
function countHeadsAndTails(flips) {
var headCount = 0;
var tailCount = 0;
for (var i = 0; i < NUM_FLIPS; i++) {
if (i == "Heads") {
headCount += 1;
}else {
tailCount += 1;
}
}
println("Total Heads: " + headCount);
println("Total Tails: " + tailCount);
}
程序随机翻转正面或反面 100 次并打印出结果,但计数器不起作用,我得到了这个:
Total Heads: 100
Total Tails: 0
【问题讨论】:
-
i == "Heads"显然不起作用,因为您已将i声明为数字 (for (var i = 0...))。flips是什么类型,在打印其内容的代码中如何访问它? -
也用
headCount++代替headCount += 1 -
您需要将数组传递给计数函数。应该是
countHeadsAndTails(flips);
标签: javascript arrays parameters counting coin-flipping