【发布时间】:2020-07-22 07:04:24
【问题描述】:
我有以下 switch/case 语句,它从下面的 json 对象返回数据。实际上这会很长!
切换语句
switch(val){
case 'chicken':
return json['meat']['main'][val];
break;
case 'beef':
return json['meat']['main'][val];
break
case 'lamb':
return json['meat']['main'][val];
break;
case 'pork':
return json['meat']['main'][val];
break;
default:
return '';
}
json 对象
json={
"meat": {
"main": {
"chicken": "Roast chicken and vegetables",
"beef": "Beef and Yorkshire pudding",
"lamb": "Lamb shank with red currant gravy",
"pork": "Pork and apple sauce",
}
}
}
如您所见,switch 语句非常重复,因为每个 case 语句都返回相同的表达式(尽管它返回的值会因访问对象中的变量键 [val] 而不同)。
实际上,我的 json 文件很大,所以我想避免为每种肉(鸡肉、牛肉、羊肉、猪肉)手动输入 case 语句。相反,我想遍历我的 json 对象,获取 json['meat']['main'][i] (其中 i 是一个计数器)的值来创建每个案例。这可能吗?如果没有,是否有替代方法?
非常感谢!
凯蒂
【问题讨论】:
-
您能多解释一下您的用例吗?对于上述情况,您可能不需要 switch 语句。
return json.meat.main[val]应该可以工作 -
您的
switch声明没有任何意义。如果您使用json['meat']['main'][val],您将直接访问正确的值。
标签: javascript reactjs loops object switch-statement