重构此功能

发布于 2025-02-05 05:24:48 字数 2173 浏览 3 评论 0原文

收到声纳问题,因为可以在功能下进行重构。以下重构功能的任何方法。

function getBodyFields(request:UpdateCustomerRequest, tmsGuid:string) {
  return {
    tmsGuid: tmsGuid,
    ...((request.organizationName && request.organizationName !== "") && {'organizationName': request.organizationName}),
    ...((request.firstName && request.firstName !== "") && {'firstName': request.firstName}),
    ...((request.middleInitial && request.middleInitial !== "") && {'middleInitial': request.middleInitial}),
    ...((request.lastName && request.lastName !== "") && {'lastName': request.lastName}),
    ...((request.email && request.email !== "") && {'email': request.email}),
    ...((request.communicationEmail && request.communicationEmail !== "") && {'communicationEmail': request.communicationEmail}),
    ...((request.areaCode && request.areaCode !== "") && {'areaCode': request.areaCode}),
    ...((request.phoneNumber && request.phoneNumber !== "") && {'phoneNumber': request.phoneNumber}),
    ...((request.phoneType && request.phoneType !== "") && {'phoneType': request.phoneType}),
    ...((request.alternatePhoneAreaCode && request.alternatePhoneAreaCode !== "") && {'alternatePhoneAreaCode': request.alternatePhoneAreaCode}),
    ...((request.alternatePhoneNumber && request.alternatePhoneNumber !== "") && {'alternatePhoneNumber': request.alternatePhoneNumber}),
    ...((request.alternatePhoneType && request.alternatePhoneType !== "") && {'alternatePhoneType': request.alternatePhoneType}),
    ...((request.address1 && request.address1 !== "") && {'address1': request.address1}),
    ...((request.address2 && request.address2 !== "") && {'address2': request.address2}),
    ...((request.city && request.city !== "") && {'city': request.city}),
    ...((request.state && request.state !== "") && {'state': request.state}),
    ...((request.zip && request.zip !== "") && {'zip': request.zip}),
  }
}

Received sonar issue for refactoring below function. Any way to refactor below function.

function getBodyFields(request:UpdateCustomerRequest, tmsGuid:string) {
  return {
    tmsGuid: tmsGuid,
    ...((request.organizationName && request.organizationName !== "") && {'organizationName': request.organizationName}),
    ...((request.firstName && request.firstName !== "") && {'firstName': request.firstName}),
    ...((request.middleInitial && request.middleInitial !== "") && {'middleInitial': request.middleInitial}),
    ...((request.lastName && request.lastName !== "") && {'lastName': request.lastName}),
    ...((request.email && request.email !== "") && {'email': request.email}),
    ...((request.communicationEmail && request.communicationEmail !== "") && {'communicationEmail': request.communicationEmail}),
    ...((request.areaCode && request.areaCode !== "") && {'areaCode': request.areaCode}),
    ...((request.phoneNumber && request.phoneNumber !== "") && {'phoneNumber': request.phoneNumber}),
    ...((request.phoneType && request.phoneType !== "") && {'phoneType': request.phoneType}),
    ...((request.alternatePhoneAreaCode && request.alternatePhoneAreaCode !== "") && {'alternatePhoneAreaCode': request.alternatePhoneAreaCode}),
    ...((request.alternatePhoneNumber && request.alternatePhoneNumber !== "") && {'alternatePhoneNumber': request.alternatePhoneNumber}),
    ...((request.alternatePhoneType && request.alternatePhoneType !== "") && {'alternatePhoneType': request.alternatePhoneType}),
    ...((request.address1 && request.address1 !== "") && {'address1': request.address1}),
    ...((request.address2 && request.address2 !== "") && {'address2': request.address2}),
    ...((request.city && request.city !== "") && {'city': request.city}),
    ...((request.state && request.state !== "") && {'state': request.state}),
    ...((request.zip && request.zip !== "") && {'zip': request.zip}),
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

脸赞 2025-02-12 05:24:49

自从您以相同的方式测试所有道具,因此您可以使用循环。

const props = [
    'organizationName',
    'firstName',
    'middleInitial',
    'lastName',
    'email',
    'communicationEmail',
    'areaCode',
    'phoneNumber',
    'phoneType',
    'alternatePhoneAreaCode',
    'alternatePhoneNumber',
    'alternatePhoneType',
    'address1',
    'address2',
    'city',
    'state',
    'zip'
];

function getBodyFields(request:UpdateCustomerRequest, tmsGuid:string) {
    var obj = {
        tmsGuid: tmsGuid
    };
    props.forEach(p => {
        if (typeof request[p] === 'string' && request[p] !== '')
            obj[p] = request[p];
    });
    return obj;
}

最好检查该值是否为字符串,因为您的检查request.zip&& request.zip!==“”即使ziptrue1 1 或[1 ]或任何真实价值。

You could use a loop since you test all the props the same way.

const props = [
    'organizationName',
    'firstName',
    'middleInitial',
    'lastName',
    'email',
    'communicationEmail',
    'areaCode',
    'phoneNumber',
    'phoneType',
    'alternatePhoneAreaCode',
    'alternatePhoneNumber',
    'alternatePhoneType',
    'address1',
    'address2',
    'city',
    'state',
    'zip'
];

function getBodyFields(request:UpdateCustomerRequest, tmsGuid:string) {
    var obj = {
        tmsGuid: tmsGuid
    };
    props.forEach(p => {
        if (typeof request[p] === 'string' && request[p] !== '')
            obj[p] = request[p];
    });
    return obj;
}

It's better to check if the value is string since your check request.zip && request.zip !== "" will return true even if the zip is true or 1 or [1] or any truthy value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文