Javascript 切换到干代码中的变量声明在大小写之外
让我们举一个例子:Javascript 切换到干代码中的变量声明在大小写之外,javascript,switch-statement,Javascript,Switch Statement,让我们举一个例子: let name; switch (name) { case "John": personsName = "little John"; break; case "Bob": personsName = "Bob almighty"; break; } 我是否可以从每个案例中提取personName=,以某种方式将其放在顶部,并只保留分配 因此,它希望: case "Bob": "Bob almighty"; break; 否则,
let name;
switch (name) {
case "John":
personsName = "little John";
break;
case "Bob":
personsName = "Bob almighty";
break;
}
我是否可以从每个案例中提取personName=
,以某种方式将其放在顶部,并只保留分配
因此,它希望:
case "Bob":
"Bob almighty";
break;
否则,对于50个案例,我将不得不重复
personName=
text 50次。如果不可能,为什么 创建name
vspersonName
var map = {
"John" : "little John",
"Bob" : "Bob almighty"
}
现在把你的人名记为
var personName = map[name];
无需使用
开关盒
创建名称
与人名
var map = {
"John" : "little John",
"Bob" : "Bob almighty"
}
现在把你的人名记为
var personName = map[name];
无需使用
开关盒
只需根本不使用开关
语句即可。只需根本不使用开关
语句即可。谢谢。如果不是字符串,而是对象呢?例如案例“Bob”:personName=bobobObject;中断地图中的代码>值也可以是对象
,但实际解决方案可能取决于您的用例<代码>地图
如果只需要根据名称进行检索就足够了。+1,你说对了。但为了完成任务,既然他问我为什么不能那样做,我想说以下几点@lovemyjob您不能简单地将“string”
写入一个switch case,这是因为您只是让它生成一个语法错误,因为您什么都不做,而简单的string对js来说毫无意义。您所能做的最好的事情就是编写一个函数,该函数将名称作为参数,在该函数中,每个开关
大小写返回字符串(该字符串将是函数的返回值)。然后只需使用该函数对变量进行值化,但我仍然建议使用@gurvinder372的方法。这不起作用,因为如果要在映射中获取值,必须通过键将其作为目标,因此正确的方法是var personName=map。Bob
@lovemyjob如果正确,则需要对映射应用键来获取值,不是相反,谢谢。如果不是字符串,而是对象呢?例如案例“Bob”:personName=bobobObject;中断地图中的代码>值也可以是对象
,但实际解决方案可能取决于您的用例<代码>地图
如果只需要根据名称进行检索就足够了。+1,你说对了。但为了完成任务,既然他问我为什么不能那样做,我想说以下几点@lovemyjob您不能简单地将“string”
写入一个switch case,这是因为您只是让它生成一个语法错误,因为您什么都不做,而简单的string对js来说毫无意义。您所能做的最好的事情就是编写一个函数,该函数将名称作为参数,在该函数中,每个开关
大小写返回字符串(该字符串将是函数的返回值)。然后只需使用该函数对变量进行值化,但我仍然建议使用@gurvinder372的方法。这不起作用,因为如果要在映射中获取值,必须通过键将其作为目标,因此正确的方法是var personName=map。Bob
@lovemyjob如果正确,则需要对映射应用键来获取值,而不是相反。