@lexstile

Как можно записать короче?

Можно как-то привести к более короткой записи?
handleSubmitFormAdd = async (fields) => {
    const {
      inn,
      kpp,
      ogrn,
      ogrnIssueDate,
      organizationName,
      phone,
      email,
      webAddress,
      address,
      accreditationState,
      accreditationDate,
      accreditationEndDate,
      description,
    } = fields;

    const data = {
      data: {
        inn: inn || null,
        kpp: kpp || null,
        ogrn: ogrn || null,
        ogrnIssueDate: ogrnIssueDate ? convertToDtoDate(ogrnIssueDate) : null,
        organizationName: organizationName || null,
        phone: phone || null,
        email: email || null,
        webAddress: webAddress || null,
        address: address || null,
        accreditationState: accreditationState || null,
        accreditationDate: accreditationDate ? convertToDtoDate(accreditationDate) : null,
        accreditationEndDate: accreditationEndDate ? convertToDtoDate(accreditationEndDate) : null,
        description: description || null,
      },
    };
    const response = await this.props.saveEvaluationCompany(data);
    this.setState({
      isErrorAdd: response.exception ? 'FAILED' : 'SUCCESS',
    });
  }
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно перечислить имена полей, и циклом:
const names = {
      nullable: "inn,kpp,ogrn,organizationName,phone,email,webAddress,address,accreditationState,description"
        .split(","),
      dates: "ogrnIssueDate,accreditationDate,accreditationEndDate"
        .split(","),
    };
    
    const data = {};
    
    for(let i = 0; i < names.nullable.length; i++) {
      const prop = names.nullable[i];
      data[prop] = fields.hasOwnProperty(prop) ? fields[prop] : null;
    }
    
    for(let i = 0; i < names.dates.length; i++) {
      const prop = names.dates[i];
      data[prop] = fields.hasOwnProperty(prop) ? convertToDtoDate(fields[prop]) : null;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы