Как я могу написать эту функцию с Ifs, чтобы иметь соответствующие операторы else

Пожалуйста, как я могу написать эту функцию с Ifs, чтобы иметь соответствующий оператор else.

Я пытаюсь добавить оператор else для каждого оператора if

Пожалуйста, посмотрите мой код ниже.

validate = (lname, fname, email, eid) => {
    if (lname) {
        this.setState({
            validationState: {
                ...this.state.validationState,
                lastname: false,
            },
        });
    }
    if (fname) {
        this.setState({
            validationState: {
                ...this.state.validationState,
                firstname: false,
            },
        });
    }
    if (helpers.isEmail(email)) {
        this.setState({
            validationState: {
                ...this.state.validationState,
                email: false,
            },
        });
    }
    if (eid) {
        this.setState({
            validationState: {
                ...this.state.validationState,
                eid: false,
            },
        });
    }
}

Не уверены, что вы имеете в виду в слове «не должно влиять на других»? Объясните пожалуйста?

Yossi 26.10.2018 07:32

Я имею в виду, что каждый оператор if должен иметь соответствующий оператор else, независимый от другого.

myrrtle 26.10.2018 07:47

Вам нужен блок else, в котором fname не имеет значения?

jasonscript 26.10.2018 07:49

независимый звучит как: if (lname) {} else {}, if (fname) {} else {} и т. д. Но я уверен, что вы не это имеете в виду ...

Yossi 26.10.2018 07:54

вы должны использовать if (первое условие) {Сделать что-нибудь} else if (второе условие) {Сделать что-нибудь} else if {(третье условие) {Сделать что-нибудь} else (если ни одно условие не выполнено) {Сделать что-нибудь}

Daniel Gonzalez 26.10.2018 07:58

@Yossi точно. Проблема, с которой я столкнулся, заключается в том, что else for fname влияет на lname.

myrrtle 26.10.2018 07:59

так мой нынешний подход не сработает? или я могу использовать для этого оператор switch?

myrrtle 26.10.2018 08:02

@jasonscript yes, а оператор else для fname не должен быть независимым от lname

myrrtle 26.10.2018 08:03
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
8
46
1

Ответы 1

Далее проверяется lname, выполняется либо предложение if, либо предложение else, затем, независимо от того, что произошло до сих пор, проверяется fname и т. д. Это то, что вы искали?

validate = (lname, fname, email, eid) => {
  if (lname) {
    this.setState({
        validationState: {
            ...this.state.validationState,
            lastname: false,
        },
    });
  } else {
  ....
  }

  if (fname) {
    this.setState({
        validationState: {
            ...this.state.validationState,
            firstname: false,
        },
    });
  } else {
  ....
  }

  if (helpers.isEmail(email)) {
    this.setState({
        validationState: {
            ...this.state.validationState,
            email: false,
        },
    });
  } else {
  ...
  }

  if (eid) {
    this.setState({
        validationState: {
            ...this.state.validationState,
            eid: false,
        },
    });
  } else {
  ...
  }

}

Другие вопросы по теме