计数值在For循环[Javascript]的数组中出现的次数 所需:

计数值在For循环[Javascript]的数组中出现的次数 所需:,javascript,arrays,math,Javascript,Arrays,Math,在类游戏中,有一个名为RoundWinners的列,其中包含多个UserId填充的数组。对于玩家赢得的每一轮,其UserId将添加到阵列中: 前端显示一个列表,显示数据库中的每个游戏。对于每一场比赛,我想计算当前用户,currentUserId赢得的回合数,并将此数字显示为userScore 示例: 当前用户:Bob 第1场,比分=2: [“鲍勃”、“苏”、“乔”、“鲍勃”] 第二场,比分=1: [“鲍勃”,“拉克金”] 第三场,比分=0: [“约翰”、“马克”、“罗尼”、“爱丽丝”] 代码:

在类游戏中,有一个名为
RoundWinners
的列,其中包含多个
UserId
填充的数组。对于玩家赢得的每一轮,其
UserId
将添加到阵列中:

前端显示一个列表,显示数据库中的每个游戏。对于每一场比赛,我想计算当前用户,
currentUserId
赢得的回合数,并将此数字显示为
userScore

示例: 当前用户:Bob

第1场,比分=2: [“鲍勃”、“苏”、“乔”、“鲍勃”]

第二场,比分=1: [“鲍勃”,“拉克金”]

第三场,比分=0: [“约翰”、“马克”、“罗尼”、“爱丽丝”]

代码:
var userScore=0;
var userScores=[];
对于(i=0;i”;
对于(i=0;i”;
}
text+=“”;
//Ammend HTML
document.getElementById(“games”).innerHTML=text;
当前错误:
第一个游戏显示
userScore
为1,尽管当前用户尚未赢得任何回合,并且所有后续游戏显示“未定义”。

为此,您必须使用2作为循环

var roundWinners=[[“鲍勃”、“苏”、“乔”、“鲍勃”、“鲍勃”、“拉金”、“约翰”、“马克”、“罗尼”、“爱丽丝”];
var配子体=[1,2,3];
var currentUserId=“Bob”;
var用户分数;
var userScores=[];
对于(i=0;i”;
对于(i=0;i”;
}
text+=“”;
//Ammend HTML
document.getElementById(“games”).innerHTML=text

用户分数始终为1的原因是,每次找到匹配项时,都会将用户分数推送到用户分数中。相反,您应该循环遍历所有roundWinners,计算currentUserId出现的次数,然后推送到userScores数组。我在下面编辑了您的代码,并添加了一条注释,指出了更改

var userScore = 0;
var userScores = [];
    for (i = 0; i < roundWinners.length; i++) {
        if (roundWinners[i] == currentUserId) {
            userScore++;
        };
    };

//Push to userScores AFTER you finish going through all of the round winners    
userScores.push(userScore);


var numberOf = gameIds.length;              
var text = "<ul>";
for (i = 0; i < numberOf; i++) {
    text += "<div class='GameContainer'> + userScores[i] + </div>"; 
    text += "</li>";    

    }
text += "</ul>";

//Ammend HTML
document.getElementById("games").innerHTML = text;
var userScore=0;
var userScores=[];
对于(i=0;i”;
对于(i=0;i”;
}
text+=“”;
//Ammend HTML
document.getElementById(“games”).innerHTML=text;

您有哪些问题?已更新为当前问题。
var userScore = 0;
var userScores = [];
    for (i = 0; i < roundWinners.length; i++) {
        if (roundWinners[i] == currentUserId) {
            userScore++;
        };
    };

//Push to userScores AFTER you finish going through all of the round winners    
userScores.push(userScore);


var numberOf = gameIds.length;              
var text = "<ul>";
for (i = 0; i < numberOf; i++) {
    text += "<div class='GameContainer'> + userScores[i] + </div>"; 
    text += "</li>";    

    }
text += "</ul>";

//Ammend HTML
document.getElementById("games").innerHTML = text;