Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重构我的Javascript IF语句_Javascript_Refactoring_Conditional - Fatal编程技术网

重构我的Javascript IF语句

重构我的Javascript IF语句,javascript,refactoring,conditional,Javascript,Refactoring,Conditional,我得到了一些非常难看的代码,我需要重构&我不确定解决这个问题的最佳方法。对我来说,这是我应该做的&每次我试图改变它,它似乎都会引入一个bug 任何想法都很好 if (product) { if (product.available) { $addToCart.removeClass('disabled').prop('disabled', false); if (lang_key_change) { $addToCartText.html(l

我得到了一些非常难看的代码,我需要重构&我不确定解决这个问题的最佳方法。对我来说,这是我应该做的&每次我试图改变它,它似乎都会引入一个bug

任何想法都很好

  if (product) {
    if (product.available) {
      $addToCart.removeClass('disabled').prop('disabled', false);

      if (lang_key_change) {
        $addToCartText.html(lang_key_change);
      } else {
        $addToCartText.html({{ 'add_to_cart'}});
      }

    } else {
      $addToCart.addClass('disabled').prop('disabled', true);
      $addToCartText.html({{ 'sold_out'}});
    }

  } else {
    $addToCart.addClass('disabled').prop('disabled', true);
    $addToCartText.html({{ 'unavailable'}});
  }

使用下面的重构代码

    $addToCart.addClass('disabled').prop('disabled', true);
if (product && product.available) {   
    $addToCart.removeClass('disabled').prop('disabled', false);
    $addToCartText.html(lang_key_change? lang_key_change: {{ 'add_to_cart'}});
}
else if (product && product.available === false) {     
    $addToCartText.html({{ 'sold_out'}});
}
else {   
    $addToCartText.html({{ 'unavailable'}});
}

您可能不需要任何
如果
语句,请检查此处

 $addToCart.toggleClass('disabled', !product || ( product && !product.available ) );
 $addToCart.prop('disabled', !product || ( product && !product.available ) );
 $addToCartText.html( !product ? {{ 'unavailable'}} : ( !product.available ? {{ 'sold_out'}} : ( lang_key_change || {{ 'add_to_cart'}} ) )  );

非常感谢,这太完美了。多干净啊