나는 다음과 같은 코드가 있습니다루프의 외부에서이 함수를 정의
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 인터페이스에서 false-positive로 표시해야합니다. – acdcjunior
어떤 버전의 SonarJS를 사용하고 있습니까? 귀하의 케이스처럼 보이는 SonarJS 3.0에서 수정 된 항공권 https://jira.sonarsource.com/browse/SONARJS-772가 있습니다. –