Function 将对象从函数工厂推送到数组中

Function 将对象从函数工厂推送到数组中,function,object,factory,Function,Object,Factory,我制作了两个功能工厂,一个是僵尸工厂,一个是人类工厂。我想有一个函数,它可以区分僵尸的总生命值和人类的总攻击值。它每一个都能工作,但我无法思考如何做多人对抗僵尸。我已经尝试将人类对象推到一个数组中,这样我就可以对所有攻击进行合计(我会对僵尸重复),但是运气不好 //Create a Human spawning object var humanArr = []; const humanSpawns = (attack) => { let human = { atta

我制作了两个功能工厂,一个是僵尸工厂,一个是人类工厂。我想有一个函数,它可以区分僵尸的总生命值和人类的总攻击值。它每一个都能工作,但我无法思考如何做多人对抗僵尸。我已经尝试将人类对象推到一个数组中,这样我就可以对所有攻击进行合计(我会对僵尸重复),但是运气不好

//Create a Human spawning object
var humanArr = [];
const humanSpawns = (attack) => {
    let human = {
        attack: attack
    };
    humanArr.push(human);
};


//Create a Zombie spawning object
const zombieSpawns = (health) => {
    return {
        health: health
    }
};


//Create function to have humans and zombies fight
function fight() {
   var result = humanOne.attack - zombieOne.health;
   if(result > 0) {
       document.write('Live to see another day.');
   } else {
       document.write('The zombies are taking over!');
   }
}

const zombieOne = zombieSpawns(12);
const humanOne = humanSpawns(11);
fight();

尝试一些类似于我的代码片段的东西,您真正需要的是创建单位的方法。 我使用的是普通物体,但是如果你想返回
伤亡者
比方说,你需要返回每个主要物体的
类人
阵列,并在战斗中根据来袭的伤害来拼接它们。别紧张,你会看到你的军队在战斗

我追求的逻辑:

  • 我需要一支军队

    1.1。要创建一支军队,首先我需要一些单位,所以我构建了
    createHumanoid
    (应该将其重命名为createArmy)

    1.2
    createHumanoid
    将帮助设置部队的一些属性,以及他们中有多少人将在我的军队中

  • 创建一个
    军队
    数组,我将使用
    createHumanoid创建我的军队

  • 我需要知道军队有多强大,所以我构建了
    getArmyPower
    ,它返回军队的
    名称
    power
    ,这将在4.2中使用。

  • 战斗开始了!(favoriteArmy=‘人类’)

    4.1<代码>战斗
    方法正在创建中,并采用两个参数,第一个参数是
    陆军
    ,第二个参数是
    偏好陆军

    4.2。使用该方法,我将
    getArmyPower
    应用于我的每个军队(阵列元素),以了解他们的力量

    4.3。然后我用
    army.power

    4.4<代码>让胜利=军队[0]
    将从排序数组中获取第一个元素。权力最高的那个。或者你可以像
    让[胜利]=军队那样使用和编写它(表示数组中的第一个元素)

    4.5。我将
    胜利的.name
    最喜欢的军队
    进行比较,以检查我感兴趣的军队是赢了还是输了

  • /**
    *创建单位的函数
    */
    const createHumanoid=(种族、人数、统计数据)=>{
    返回{
    名称:种族,,
    军人:有多少人,
    单位统计:统计
    }
    };
    /**
    *登记军队参战
    */
    让军队=[
    createHumanoid(“人类”),12{
    卫生:10,
    攻击:12
    }),
    createHumanoid('僵尸',5{
    健康:30岁,
    攻击:12
    }),
    ]
    /**
    *获得每支军队的最大力量-你可以调整算法
    */
    const getArmyPower=(陆军)=>{
    返回{
    姓名:army.name,
    力量:+army.armySize*(+army.unitStats.health++army.unitStats.attack)
    }
    }
    /**
    *让他们战斗,看看你最喜欢的军队在战斗中做了什么
    */
    职能作战(军队、部队){
    军队
    .map(陆军=>getArmyPower(陆军))
    .sort((a,b)=>b.power-a.power);
    让胜利=军队[0];
    if(victorious.name.toLowerCase()==favoriteArmy.toLowerCase()){
    记录。写(‘活着看到另一天’);
    }否则{
    document.write('zombies正在接管!');
    }
    }
    
    战斗(军队,“人类”)尝试类似于我的代码片段的方法,您真正需要的是创建单元的方法。 我使用的是普通物体,但是如果你想返回
    伤亡者
    比方说,你需要返回每个主要物体的
    类人
    阵列,并在战斗中根据来袭的伤害来拼接它们。别紧张,你会看到你的军队在战斗

    我追求的逻辑:

  • 我需要一支军队

    1.1。要创建一支军队,首先我需要一些单位,所以我构建了
    createHumanoid
    (应该将其重命名为createArmy)

    1.2
    createHumanoid
    将帮助设置部队的一些属性,以及他们中有多少人将在我的军队中

  • 创建一个
    军队
    数组,我将使用
    createHumanoid创建我的军队

  • 我需要知道军队有多强大,所以我构建了
    getArmyPower
    ,它返回军队的
    名称
    power
    ,这将在4.2中使用。

  • 战斗开始了!(favoriteArmy=‘人类’)

    4.1<代码>战斗
  • 方法正在创建中,并采用两个参数,第一个参数是
    陆军
    ,第二个参数是
    偏好陆军

    4.2。使用该方法,我将
    getArmyPower
    应用于我的每个军队(阵列元素),以了解他们的力量

    4.3。然后我用
    army.power

    4.4<代码>让胜利=军队[0]
    将从排序数组中获取第一个元素。权力最高的那个。或者你可以像
    让[胜利]=军队那样使用和编写它(表示数组中的第一个元素)

    4.5。我将
    胜利的.name
    最喜欢的军队
    进行比较,以检查我感兴趣的军队是赢了还是输了

    /**
    *创建单位的函数
    */
    const createHumanoid=(种族、人数、统计数据)=>{
    返回{
    名称:种族,,
    军人:有多少人,
    单位统计:统计
    }
    };
    /**
    *登记军队参战
    */
    让军队=[
    createHumanoid(“人类”),12{
    卫生:10,
    攻击:12
    }),
    createHumanoid('僵尸',5{
    健康:30岁,
    攻击:12
    }),
    ]
    /**
    *获得每支军队的最大力量-你可以调整算法
    */
    const getArmyPower=(陆军)=>{
    返回{
    姓名:army.name,
    力量:+army.armySize*(+army.unitStats.health++army.unitStats.attack)
    }
    }
    /**
    *让他们战斗,看看你最喜欢的军队在战斗中做了什么
    */
    职能战斗(军队、人情)