@dmitry2000

Как переписать без else и else if?

if (ids.length > 0 && !item.name) {
                        state.push(false);
                    } else if (ids.length > 0) {
                        const filterName = ids.find((name) => name === item.name);

                        if (filterName) {
                            this.isFilters = false;
                            state.push(filterName != null);
                        } else {
                            state.push(false);
                        }
                    }

                    if (types.length > 0) {
                        if (!item.surname) {
                            state.push(false);
                        } else {
                            const filter = types.find((type) => type === item.surname);

                            if (filter) {
                                this.isFilters = false;
                                state.push(filter != null);
                            } else {
                                state.push(false);
                            }
                        }
                    }

Как бы я не переписывал, мои попытки заканчиваются неудачно. Что-то упускаю. Как можно переписать без else и else if?
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вынести код в отдельный метод и использовать ранний возврат.
Ответ написан
Комментировать
@chelnokov_a
Что-то такое...

if (ids.length > 0) {
        const filterName = ids.find((name) => name === item.name);

        if (!item.name) {
            state.push(false);

            return;
        }

        if (filterName) {
            this.isFilters = false;
            state.push(filterName != null);

            return;
        }

        state.push(false);
    }
    
    if (types.length > 0) {
        const filter = types.find((type) => type === item.surname);

        if (!item.surname) {
            state.push(false);

            return;
        }

        if (filter) {
            this.isFilters = false;
            state.push(filter != null);

            return;
        }

        state.push(false);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект