【发布时间】:2018-06-08 06:54:42
【问题描述】:
我有以下代码:
for (var entry in metadata) {
if (metadata.hasOwnProperty(entry)) {
var varName = metadata[entry].variableName;
if (metadata[entry].multipleValues === "false") {
if (angular.isDefined(vm[varName]) && (vm[varName] !== null) && vm[varName].id !== null) {
filters.push(factory.buildEntry(metadata[entry].variableName, vm[varName].id, null, factory.filterOperators.textContains));
}
} else {
if (angular.isDefined(vm[varName]) && (angular.isArray(vm[varName])) && (vm[varName].length > 0)) {
filters.push(factory.buildEntry(metadata[entry].variableName, null, vm[varName].map(function (item) {
return item.id;
}), factory.filterOperators.textContains));
}
}
}
}
但是 SonarQube 一直告诉我 Define this function outside of a loop.,而我在这个循环中的唯一函数是我传递给 Array.prototype.map() 方法的匿名函数:
function (item) {
return item.id;
}
如果我在循环之外定义它,这将毫无用处,因为它的主体只包含一行代码。
为什么我会收到此错误?以及如何告诉 SonarQube 跳过它。
【问题讨论】:
-
你自己弄清楚了错误的原因。
how can I tell SonarQube to skip it?--> 如果可能,您可能可以添加某种评论。否则,您必须在 SonarQube 界面上将其标记为误报。 -
您使用的是哪个版本的 SonarJS? SonarJS 3.0 中修复了票 jira.sonarsource.com/browse/SONARJS-772,这似乎是您的情况
标签: javascript sonarqube