Javascript getHeadline返回报纸标题,我们';我会根据地点和在场的超级英雄知道的

Javascript getHeadline返回报纸标题,我们';我会根据地点和在场的超级英雄知道的,javascript,Javascript,给定两个参数,一个超级英雄和一个城市,编写一个名为headline的函数,当(并且仅当)我们的城市被保存时,返回一个报纸头条——我们将根据位置和超级英雄在场的情况知道 在DC/Marvel漫画的世界里,我们有: Three superheros: Superman, Batman, Spiderman, Three aliases: Clark Kent, Bruce Wayne, and Peter Parker, And three locations: Metropolis, Gotham

给定两个参数,一个超级英雄和一个城市,编写一个名为headline的函数,当(并且仅当)我们的城市被保存时,返回一个报纸头条——我们将根据位置和超级英雄在场的情况知道

在DC/Marvel漫画的世界里,我们有:

Three superheros: Superman, Batman, Spiderman,
Three aliases: Clark Kent, Bruce Wayne, and Peter Parker,
And three locations: Metropolis, Gotham City, and New York City.
我们还知道每个别名对应一个特定的超级英雄,所以

The alias Clark Kent belongs to Superman,
Bruce Wayne belongs to Batman,
and Peter Parker belongs to Spiderman.
我们知道每个超级英雄都在不同的城市

Superman oversees Metropolis.
Batman patrols Gotham City.
Spiderman keeps New York City safe.
要了解城市是否被保存,请确定提供的超级英雄是否在各自的城市中。如果是,请返回如下标题:

__________, living under the alias of __________, saved the city of __________!
如果正确的超级英雄不在正确的城市中,则该城市不会保存,函数应返回空字符串(“”)

函数getHeadline(超级英雄,城市){
var别名=“”;
如果(超级英雄!=“超人”&&city!=“大都会”){
控制台日志(“”);
}否则如果(超级英雄!==‘蝙蝠侠’和城市!==‘高谭城’){
console.log('2');
}否则如果(超级英雄!==‘蜘蛛侠’&&city!==‘纽约市’){
console.log('3');
}否则{
如果(超级英雄==‘超人’和城市==‘大都会’){
别名='Clark Kent';
}否则如果(超级英雄===‘蝙蝠侠’和城市===‘高谭城’){
别名=‘布鲁斯·韦恩’;
}否则如果(超级英雄===‘蜘蛛侠’和城市===‘纽约市’){
别名=“彼得·帕克”;
}否则{
回归超级英雄+”,化名为“+别名+”,拯救了城市“+城市+!”;
}
}

}
您在这里把事情复杂化了。我们不需要像你们现在这样多的箱子,所以我们可以稍微减少一些。我们基本上需要做的是:

  • 超级英雄与城市的比赛
  • a。如果匹配:设置别名
    B如果不匹配:返回空字符串
  • 返回格式化字符串
  • 函数getHeadline(超级英雄,城市){
    var别名=“”;
    如果(超级英雄==‘超人’和城市==‘大都会’){
    别名='Clark Kent';
    }否则如果(超级英雄===‘蝙蝠侠’和城市===‘高谭城’){
    别名=‘布鲁斯·韦恩’;
    }否则如果(超级英雄===‘蜘蛛侠’和城市===‘纽约市’){
    别名=‘彼得·帕克’;
    }否则{
    返回“”;
    }
    回归超级英雄+,化名为“+别名+”,拯救了城市“+城市+”;
    }
    log(“('Superman','Metropolis'):\n”,getHeadline('Superman','Metropolis'));
    
    log(“(‘超人’,‘纽约’):\n”,getHeadline(‘超人’,‘纽约’)我将创建一个全局对象(在函数外部):
    超级英雄={name:{alias:…,city:…},…其他两个…}
    ,然后像这样检入函数:
    if(superheros[superhero].city==city)msg=superhero+“”+superheros[superhero].alias+“”+city;else msg=“”
    @iAmOren我几乎也提出了这一点——但它似乎非常“编程入门”,所以思想对象可能过于复杂了@DannyBattison,如果家庭作业能发展成一个项目就好了…
    if(超级英雄!='superhero'&&city!='Metropolis')
    true
    例如,当超级英雄是蜘蛛侠而城市是纽约(city)时。也许:
    if(超级英雄=='superhero'&&city!=='Metropolis')
    ?请参见下面@DannyBattison在其回答中建议的解决方案。此外,您最后的
    else
    不应该是:一旦您通过
    if
    -
    else
    设置了
    别名,请发送消息<代码>if(…){alias…}else if(…){alias…}else if(…){alias};返回“…”。如果您没有返回一个空字符串,那么应该只访问这组
    if
    -
    else
    如果
    后面是
    if(sh=>。“&&c!=>”)
    。很好!就我个人而言,我更喜欢用双引号表示字符串,用单引号表示字符(JavaScript没有区别——只是与以前的语言和习惯不同……)C语言的作者发现;)基本的家伙怎么样?汇编程序?:)我正试图编辑您的答案以将其转换为一个片段,但“建议的编辑队列已满”…我已将您的答案编辑为一个片段+在失败匹配的日志+日志中显示传递的数据。您是否可以等到它被批准/拒绝,然后:将“1”更改为“匹配超级英雄和城市->设置别名”,将“2”更改为“如果未找到匹配->返回空字符串”。-因为你的编辑。。。或者,我能做吗?不要跨越电线…:)顺便说一句,我已经对你的答案投了赞成票。去吧——我认为1/2/3只是一个简单的问题,在他的要求中看不到任何东西。我对StackOverflow的帖子还不太熟悉,所以我仍然在想到底发生了什么:)(PS…呃,汇编程序)