Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular “如何解决声纳问题”;更新或重构此函数,使其实现不会';t复制第xxx行中的一个“;_Angular_Typescript_Sonarqube - Fatal编程技术网

Angular “如何解决声纳问题”;更新或重构此函数,使其实现不会';t复制第xxx行中的一个“;

Angular “如何解决声纳问题”;更新或重构此函数,使其实现不会';t复制第xxx行中的一个“;,angular,typescript,sonarqube,Angular,Typescript,Sonarqube,SonarQube在某些特定行中将这4个功能识别为重复: 受益人。forEach(受益人=>{ ()=>{ 以下是我的职能: affectPercentageToBeneficiares(beneficiaires: BeneficiaryData[], sum: number) { let numberOfBeneficiaresWithEmptyPrecentage = this.getBeneficiaresWithEmptyPercentageNumber(beneficiair

SonarQube在某些特定行中将这4个功能识别为重复:

  • 受益人。forEach(受益人=>{
  • ()=>{
  • 以下是我的职能:

    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);
    }
    
    (或者将其设为类方法,但它不使用任何类状态,因此可能是私有静态。)