【发布时间】:2016-02-15 00:00:52
【问题描述】:
我读过in this Q&A,通常应该避免在循环中使用continue 语句。下面的代码值得遵守规则吗?如果是,那么重构它以摆脱它们的最佳方法是什么?
for (property in formInput) {
if (!formInput.hasOwnProperty(property) || property === "Id") {
continue;
}
if (property.slice(-3) === "_Id") {
setMagicSuggestFromFormInput(property);
continue;
}
if (property.slice(-3) === "_bl" && formInput[property] === true) {
$("#" + property).prop("checked", true);
continue;
}
$("#" + property).val(formInput[property]);
}
编辑:如果您认为必须重构循环,除了说明如何完成之外,您能否告诉我为什么您认为提议的重构是更好的设计选择?
【问题讨论】:
-
个人选择...坦率地说,我宁愿看到
continue声明深度嵌套的代码。 -
这个问题本质上是基于意见的。要求最佳实践或隐含规则只会产生缺乏技术客观性的非常固执己见的答案。这个问题很可能已经结束了。有关详细信息,请参阅help center。另请注意,尝试获得“更好的设计选择”既非常广泛,也基于意见。
-
我认为第一个 continue 最好保持原样,因为它指定了根本不需要任何操作的情况。其余的......我不确定。不过,我通常同意 continue 比深度嵌套的代码更好。
-
@Jeremy 这正是我的感觉,但出于[此处提到的] (stackoverflow.com/a/11730237/5130839) 的原因,您应该避免继续。我不明白为什么继续重构会是一场噩梦。
标签: javascript jquery loops if-statement