Javascript 对于给定的任务,我无法找出我在程序中犯了什么错误

Javascript 对于给定的任务,我无法找出我在程序中犯了什么错误,javascript,Javascript,中土世界即将开战。善良的力量将与邪恶的力量进行多次战斗。不同的种族肯定会参与其中。每一个种族在与其他种族作战时都有一定的价值。在好的一面,我们有以下种族及其相关价值: 霍比特人:1 男:2 精灵:3 矮人:3 老鹰:4只 巫师:10 在邪恶方面,我们有: 兽人:1 男:2 沃格斯:2 地精:2 乌鲁克海:3 巨魔:5 巫师:10 尽管天气、地理位置、补给和勇气在任何战斗中都起着一定的作用,但如果你将善的一面的价值加起来,并与恶的一面进行比较,价值较大的一面往往会获胜 因此,考虑到每一个站在正义一

中土世界即将开战。善良的力量将与邪恶的力量进行多次战斗。不同的种族肯定会参与其中。每一个种族在与其他种族作战时都有一定的价值。在好的一面,我们有以下种族及其相关价值:

霍比特人:1 男:2 精灵:3 矮人:3 老鹰:4只 巫师:10 在邪恶方面,我们有:

兽人:1 男:2 沃格斯:2 地精:2 乌鲁克海:3 巨魔:5 巫师:10 尽管天气、地理位置、补给和勇气在任何战斗中都起着一定的作用,但如果你将善的一面的价值加起来,并与恶的一面进行比较,价值较大的一面往往会获胜

因此,考虑到每一个站在正义一边的种族的数量,然后是站在邪恶一边的种族的数量,决定哪一方获胜

输入: 该函数将提供两个参数。每个参数都是一个由多个整数组成的字符串,由一个空格分隔。每个字符串将包含每个种族的善恶计数

第一个参数将按以下顺序包含好的一侧的每个比赛的计数:

霍比特人,男人,精灵,矮人,老鹰,巫师。 第二个参数将按以下顺序包含邪恶一方的每个种族的计数:

兽人、人类、兽人、地精、乌鲁克海、巨魔、巫师。 所有值都是非负整数。每边值的结果总和将不会超过32位整数的限制

输出: 如果正义获胜,则返回“战斗结果:正义战胜邪恶”;如果邪恶获胜,则返回“战斗结果:邪恶消灭一切善的痕迹”;如果结果平局,则返回“战斗结果:在这个战场上没有胜利者”

函数goodVsEvil(good,evil){
var Good=Good.split(“”).map(Number).reduce((x,i,a)=>{
var-worth=[1,2,3,3,4,10]
总风险价值;
总额+=a[i]*价值[i];
返回总数
})
var-Evil=Evil.split(“”).map(Number).reduce((x,i,a)=>{
var-worth=[1,2,2,3,5,10]
var总计
总额+=a[i]*价值[i];
返回总数
})
如果(善>恶){
返回“战斗结果:善战胜恶”
}否则如果(恶>善){
return“战斗结果:恶尽善迹”
}else如果((邪恶==1&&Good==1)| |(邪恶==0&&Good==0)){
return“战斗结果:此战场无胜利者”
}
}
我改变的事情:

  • 将两个点阵列移出
    goodVsEvil
    函数,并将其重命名为
    worth\u good
    worth\u evil
  • 删除不必要的
    map
    调用
  • 重命名
    参数减少为更全面的名称
  • 重构
    reduce
    实现


var worth_good = [1, 2, 3, 3, 4, 10];
var worth_evil = [1, 2, 2, 2, 3, 5, 10];

function goodVsEvil(good, evil) {
  var Good = good.split(' ').reduce((total, val, i) => {
    return total += worth_good[i];
  })

  var Evil = evil.split(' ').reduce((total, val, i) => {
    return total += worth_evil[i];
  })

  if (Good > Evil) {
    return "Battle Result: Good triumphs over Evil"
  } else if (Evil > Good) {
    return "Battle Result: Evil eradicates all trace of Good"
  } else if ((Evil == 1 && Good == 1) || (Evil == 0 && Good == 0)) {
    return "Battle Result: No victor on this battle field"
  }

}

console.log(goodVsEvil("1 2 3 4 5 6", "1 1 1 1 1 1 1"));
> "Battle Result: Good triumphs over Evil"