打破带有 lint 问题的下划线循环
Break from underscore loop with lint issues
下面是代码,试图通过返回 true
找到结果后打破循环
ngModel.$parsers.unshift(function (viewValue) {
let names = scope.vm.names;
_.find(names, function (elem) {
let name = elem.name;
if (name && viewValue) {
if (name.toLowerCase() === viewValue.toLowerCase()) {
ngModel.$setValidity('unique', false);
return true; // break out of this loop
} else {
ngModel.$setValidity('unique', true);
}
}
});
return viewValue;
});
代码完全符合预期,但 lint 抛出错误:
× Unnecessary 'else' after 'return'. (no-else-return)
27 | ngModel.$setValidity('unique', false);
28 | return true; // break out of this loop
29 | } else {
| ^
30 | ngModel.$setValidity('unique', true);
31 | }
32 | }
如何抑制这个错误,或者有没有办法编写更好的代码来摆脱这个错误?
要解决 lint 警告,您可以使用以下代码。
if (name && viewValue) {
let equal = name.toLowerCase() === viewValue.toLowerCase();
ngModel.$setValidity('unique', !equal);
if (equal) {
return true; // break out of this loop
}
}
要设置 unique
状态,使用布尔值,如果为真,则从 if
返回 true
。
下面是代码,试图通过返回 true
找到结果后打破循环ngModel.$parsers.unshift(function (viewValue) {
let names = scope.vm.names;
_.find(names, function (elem) {
let name = elem.name;
if (name && viewValue) {
if (name.toLowerCase() === viewValue.toLowerCase()) {
ngModel.$setValidity('unique', false);
return true; // break out of this loop
} else {
ngModel.$setValidity('unique', true);
}
}
});
return viewValue;
});
代码完全符合预期,但 lint 抛出错误:
× Unnecessary 'else' after 'return'. (no-else-return)
27 | ngModel.$setValidity('unique', false);
28 | return true; // break out of this loop
29 | } else {
| ^
30 | ngModel.$setValidity('unique', true);
31 | }
32 | }
如何抑制这个错误,或者有没有办法编写更好的代码来摆脱这个错误?
要解决 lint 警告,您可以使用以下代码。
if (name && viewValue) {
let equal = name.toLowerCase() === viewValue.toLowerCase();
ngModel.$setValidity('unique', !equal);
if (equal) {
return true; // break out of this loop
}
}
要设置 unique
状态,使用布尔值,如果为真,则从 if
返回 true
。