Javascript 有没有更好的方法来重构这段代码?
下面是我的代码Javascript 有没有更好的方法来重构这段代码?,javascript,Javascript,下面是我的代码 if(props.plan[plan_id]) { if(props.plan[plan_id].number== 0) { return null; } else { return 'some value'; } } 首先,我需要检查prop.plan[plan_id]是否存在,然后使用它的数据。 因为我写了两次if语句,所以任何方法都可以使代码更漂亮。使用三元运算符: if (props.plan[plan
if(props.plan[plan_id]) {
if(props.plan[plan_id].number== 0) {
return null;
}
else {
return 'some value';
}
}
首先,我需要检查prop.plan[plan_id]是否存在,然后使用它的数据。
因为我写了两次if语句,所以任何方法都可以使代码更漂亮。使用三元运算符:
if (props.plan[plan_id])
return (props.plan[plan.id].number == 0) ? null : 'some value';
顺便说一句,我认为在这种情况下,
===
可能比使用===
更好:
if(props.plan[plan_id]) {
return props.plan[plan_id].number === 0 ? null : 'some value';
}
使用可以将您从两个if
中解救出来,因为它将在第一个语句处终止,它可以转换为false
(不会尝试检查props.plan[plan\u id]
的值,除非它存在并且左侧计算为true
):
为了确保没有运行时错误,我将执行以下操作:
return props && props.plan && props.plan[plan_id] ? 'some value' : null
如果
props.plan[plan\u id]
不存在,或者它的值是:0
,未定义的,空的或者一个空字符串,那么你将得到一些值。
。嘿,不确定我是否会称之为“更漂亮”但肯定更多terse@IsmailBadawi是的,我刚刚注意到并编辑了我的答案:p@Kaiido0
是错误的,value==0
不是。我的。。。。对不起,你忘了OP btw中的.value
,它是.number
。事实上,它永远不会传递给'some value'
@kaido对不起,我明白你的意思了。我错误地阅读了示例代码。
return props && props.plan && props.plan[plan_id] ? 'some value' : null