Angular “如何解决声纳问题”;更新或重构此函数,使其实现不会';t复制第xxx行中的一个“;
SonarQube在某些特定行中将这4个功能识别为重复:Angular “如何解决声纳问题”;更新或重构此函数,使其实现不会';t复制第xxx行中的一个“;,angular,typescript,sonarqube,Angular,Typescript,Sonarqube,SonarQube在某些特定行中将这4个功能识别为重复: 受益人。forEach(受益人=>{ ()=>{ 以下是我的职能: affectPercentageToBeneficiares(beneficiaires: BeneficiaryData[], sum: number) { let numberOfBeneficiaresWithEmptyPrecentage = this.getBeneficiaresWithEmptyPercentageNumber(beneficiair
affectPercentageToBeneficiares(beneficiaires: BeneficiaryData[], sum: number) {
let numberOfBeneficiaresWithEmptyPrecentage = this.getBeneficiaresWithEmptyPercentageNumber(beneficiaires);
let valueToAffecte = (100.02 - sum) / numberOfBeneficiaresWithEmptyPrecentage;
beneficiaires.forEach(beneficiaire => {
if (beneficiaire.percentage == "") {
valueToAffecte = Math.round(valueToAffecte * 100) / 100;
beneficiaire.percentage = "" + valueToAffecte;
}
})
}
affectPercentageToBeneficiaresInZeroCase(beneficiaires: BeneficiaryData[]) {
let numberOfBeneficiaresWithEmptyPrecentage = this.getBeneficiaresWithEmptyPercentageNumber(beneficiaires);
let valueToAffecte = (100) / numberOfBeneficiaresWithEmptyPrecentage;
beneficiaires.forEach(beneficiaire => {
if (beneficiaire.percentage == "") {
valueToAffecte = Math.round(valueToAffecte * 100) / 100;
beneficiaire.percentage = "" + valueToAffecte;
}
});
}
this.userProfilService.updateUser(this.UpdatedUser)
.subscribe(
() => {
this.toastr.success('User has been updated successfully', null, {
enableHtml: true,
});
},
(err) => {
this.toastr.error('erreur dans la modification utilisateur', null, {
enableHtml: true,
});
}
);
this.userProfilService.addUser(this.User)
.subscribe(
() => {
this.toastr.success('User has been created', null, {
enableHtml: true,
});
},
(err) => {
throw err;
}
);
有没有一种解决方案可以解决前两个函数的问题,而不必将它们合并为一个函数
谢谢您不必合并函数,问题是您在两个位置有完全相同的函数(forEach回调)。将受益人的更新放入其自己的函数或方法中,并从两个位置调用该函数:
// Outside the class
function updateBeneficiaires(beneficiaires, valueToAffecte) {
beneficiaires.forEach(beneficiaire => {
if (beneficiaire.percentage == "") {
valueToAffecte = Math.round(valueToAffecte * 100) / 100;
beneficiaire.percentage = "" + valueToAffecte;
}
});
}
// In the class
affectPercentageToBeneficiares(beneficiaires: BeneficiaryData[], sum: number) {
let numberOfBeneficiaresWithEmptyPrecentage = this.getBeneficiaresWithEmptyPercentageNumber(beneficiaires);
let valueToAffecte = (100.02 - sum) / numberOfBeneficiaresWithEmptyPrecentage;
updateBeneficiaires(beneficiaires, valueToAffecte);
}
affectPercentageToBeneficiaresInZeroCase(beneficiaires: BeneficiaryData[]) {
let numberOfBeneficiaresWithEmptyPrecentage = this.getBeneficiaresWithEmptyPercentageNumber(beneficiaires);
let valueToAffecte = (100) / numberOfBeneficiaresWithEmptyPrecentage;
updateBeneficiaires(beneficiaires, valueToAffecte);
}
(或者将其设为类方法,但它不使用任何类状态,因此可能是私有静态。)