我有一个不寻常的嵌套if
语句,执行某些代码需要第三个条件,但这个条件与我的else
子句无关。因此,我在外部2个条件中嵌套了这个条件。下面的工作原理应该如此,但我不肯定这是处理这种情况的最好方法。我应该使用另一种方法,还是以一种我没想过的方式重构它?
if ($('#preferred-contact').prop('selectedIndex') == index && !$(selector).val())
{
if (!$(label).parent().hasClass('has-error')) {
$(selector).after("<span class='help-block form-error'>Required Field</span>");
$(label).parent().addClass('has-error');
}
}
else {
$(selector + ' + .help-block').remove();
$(label).parent().removeClass('has-error');
}
答案 0 :(得分:2)
您的第一个delete[]
语句有第二个if
语句,但不包含其他代码。
为什么只为此创建一个条件?
if
通过它,您可以减少 cyclomatic complexity 并改进代码。在每种语言中,您都应该使用最低级别的嵌套进行编码。
答案 1 :(得分:-1)
如果你好的话,你使用条件的方式。但是,如果你坚持摆脱内在条件,你可以从后面重写它并使用else if
:
if ($('#preferred-contact').prop('selectedIndex') != index || $(selector).val())
{
$(selector + ' + .help-block').remove();
$(label).parent().removeClass('has-error');
}
else if (!$(label).parent().hasClass('has-error')) {
$(selector).after("<span class='help-block form-error'>Required Field</span>");
$(label).parent().addClass('has-error');
}