0
我有以下代码:定义循环外该功能
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跳过它。
你自己想出了错误的原因。 “我怎么能告诉SonarQube跳过它?” - >如果可能的话,可能会添加一些评论。否则,您必须在SonarQube界面上将其标记为误报。 – acdcjunior
您使用的是哪个版本的SonarJS?有一个https://jira.sonarsource.com/browse/SONARJS-772在SonarJS 3.0中修复,看起来像你的情况 –