有没有更好的方法来重构这段代码?

时间:2016-11-16 02:35:48

标签: javascript

以下是我的代码

  if(props.plan[plan_id]) {
    if(props.plan[plan_id].number== 0) {
       return null;
    }
    else {
       return 'some value';
    }
  }

首先,我需要检查prop.plan [plan_id]是否存在然后使用它的数据。 有什么方法可以使这段代码更漂亮,因为我写了两次if语句。

4 个答案:

答案 0 :(得分:2)

使用三元运算符:

if (props.plan[plan_id])
   return (props.plan[plan.id].number == 0) ? null : 'some value';

答案 1 :(得分:1)

顺便说一句,我认为可能不是使用=====在这种情况下更好:

  if(props.plan[plan_id]) {
    return props.plan[plan_id].number === 0 ? null : 'some value';
  }

答案 2 :(得分:1)

使用&& operator可以节省两个if,因为它将在它可以转换为false的第一个语句处终止(不会尝试检查{{1}的值除非它存在且左侧评估为props.plan[plan_id]):

true

答案 3 :(得分:0)

为了确保没有运行时错误,我会这样做:

return props && props.plan && props.plan[plan_id] ? 'some value' : null

如果some value不存在或其值为props.plan[plan_id]0undefined或空字符串,您将获得null