【发布时间】: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 上收到任何其他可用于编写此代码或拆分代码的选项