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中修復,看起來像你的情況 –