【问题标题】:Refactor of function功能重构
【发布时间】:2022-06-10 17:42:57
【问题描述】:

我已经创建了下面的函数,但在重构这个函数时遇到了错误。我需要解决这个错误。我尝试了不同的场景但没有工作。 在 sonarqube 上收到错误为“重构此函数以将其认知复杂度从 16 降低到允许的 15”。

function ccCustomerDetails(request:UpdateCustomerRequest, ccCustomer:CCCustomer){
  const strippedRequest:UpdateCustomerRequest = new UpdateCustomerRequest({});
if (ccCustomer.communicationInfo.postalAddressInfo.length < 1 ) {
    if (request.address1 || request.address2 || request.city || request.state || request.zip) {
      strippedRequest.address1 = request.address1;
      strippedRequest.address2 = request.address2;
      strippedRequest.city = request.city;
      strippedRequest.state = request.state;
      strippedRequest.zip = request.zip;
    }
  } else{
    ccCustomer.communicationInfo.postalAddressInfo.forEach(postalAddressInfo => {
      if (postalAddressInfo.postalAddressRole === "MAIL") {
        if (request.address1 && request.address1.toUpperCase() !== postalAddressInfo.addressLine1.toUpperCase()) {
          strippedRequest.address1 = request.address1;
        }
        if (request.address2 && request.address2.toUpperCase() !== postalAddressInfo.addressLine2.toUpperCase()) {
          strippedRequest.address2 = request.address2;
        }
        if (request.city && request.city.toUpperCase() !== postalAddressInfo.city.toUpperCase()) {
          strippedRequest.city = request.city;
        }
        if (request.state && request.state.toUpperCase() !== postalAddressInfo.stateProvinceCD.toUpperCase()) {
          strippedRequest.state = request.state;
        }
        if (request.zip && request.zip.toString().substring(0, 5) !== postalAddressInfo.postalCD.substring(0, 5)) {
          strippedRequest.zip = request.zip;
        }
      }
    });
  }
}

【问题讨论】:

  • 你会得到哪个错误?你尝试了什么?请edit您的问题并添加更多详细信息!
  • 重构此函数以将其认知复杂度从 16 降低到允许的 15。此问题在 sonarqube 上收到任何其他可用于编写此代码或拆分代码的选项

标签: node.js sonarqube


猜你喜欢
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 2022-07-12
相关资源
最近更新 更多