Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:将播放器添加到数组中的特定对象_Javascript_Arrays_Object - Fatal编程技术网

Javascript:将播放器添加到数组中的特定对象

Javascript:将播放器添加到数组中的特定对象,javascript,arrays,object,Javascript,Arrays,Object,我正在制作一个应用程序,用户可以在其中创建一个团队并向其中添加球员,以跟踪团队统计数据 在我的代码中,我有一个团队数组、一个创建团队的函数和一个创建玩家的函数 我希望createNewPlayer()接受一个团队变量,因此它会将该玩家添加到wright团队中 现在,函数返回“团队不存在”,而我在运行函数之前创建了一个具有该确切名称的团队 你知道怎么解决这个问题吗 const Teams = [] // Team Class class Team { constructor(name,

我正在制作一个应用程序,用户可以在其中创建一个团队并向其中添加球员,以跟踪团队统计数据

在我的代码中,我有一个团队数组、一个创建团队的函数和一个创建玩家的函数

我希望
createNewPlayer()
接受一个团队变量,因此它会将该玩家添加到wright团队中

现在,函数返回“团队不存在”,而我在运行函数之前创建了一个具有该确切名称的团队

你知道怎么解决这个问题吗

const Teams = []

// Team Class
class Team {
    constructor(name, players) {
        this.name = name;
        this.players = [];
    }
}

// Player class
class Player {  
    constructor(name, lastName, team, goal, assist, yellowCard, redCard, minPlayed) {
        this.name = name;
        this.lastName = lastName;
        this.team = team;
        this.goal = 0;
        this.assist = 0;
        this.yellowCard = 0;
        this.redCard = 0;
        this.minPlayed = 0;
    }
}

// Create new team
const createNewTeam = (name) => {
    if (typeof name === "string") {
        let newTeam = new Team(name);
        Teams.push(newTeam);
    } else {
        console.log("Something went wrong.");
    }
}

//Create new player
const createNewPlayer = (name, lastName, team) => {
    let newPlayer = new Player(name, lastName, team);
    for (i = 0; i < Teams.length; i++) {
        if (Teams[i].name === team) {
            Teams[i].players.push(newPlayer);
        } else {
            console.log("Team does not exist!")
        }
    }
}
const团队=[]
//团体课
班队{
构造函数(名称、玩家){
this.name=名称;
这个.players=[];
}
}
//球员级别
类播放器{
建造师(姓名、姓氏、团队、进球、助攻、黄牌、红牌、明牌){
this.name=名称;
this.lastName=lastName;
这个团队=团队;
这个目标=0;
这个.assist=0;
这张黄色卡片=0;
这个.redCard=0;
此值为0;
}
}
//创建新团队
const createNewTeam=(名称)=>{
如果(名称类型==“字符串”){
让newTeam=新团队(名称);
团队推进(新团队);
}否则{
log(“出了点问题。”);
}
}
//创建新玩家
const createNewPlayer=(姓名、姓氏、团队)=>{
让newPlayer=新玩家(姓名、姓氏、团队);
对于(i=0;i
我想你必须检查
团队[I].name==team.name

我想试试这样的方法:

const createNewPlayer = (name, lastName, teamName) => {
  let newPlayer = new Player(name, lastName, teamName);
  let team = Teams.find((Team) => Team.name === teamName)
  if(team !== undefined) {
    team.players.push
  } else {
    console.log("Team does not exist!")
  }
  return newPlayer
}

循环所有团队,在团队名称不匹配的每个迭代中,记录错误。 您应该尝试以下方法:

let teamFound = false;
for (i = 0; i < Teams.length; i++) {
    if (Teams[i].name === team) {
        Teams[i].players.push(newPlayer);
        teamFound = true;
        break;
    }
}
if (!teamFound) {
    console.log("Team does not exist!")
}
让teamFound=false;
对于(i=0;i