@Incold

Почему функция не возвращает true?

Здравствуйте! Хочу написать функцию, которая выявляет наличие ошибки в форме не смотря на глубину вложенности данных.
Код:
const filterErrors = (obj) => {
        if (!obj) return false;
        const array = Array.isArray(obj) ? obj : Object.values(obj);

        if (!array.length) return false;
        else {
            for (let item of array) {
                if (typeof item === 'string' && item) {
                    console.log('here');
                    return true;
                }
                else filterErrors(item)
            }
        }
        return false;
    };

Функция работает, но к сожалению, не всегда, когда мне приходит что-то типа,
{
   data: [
        {name: 'first', value: 'hello'},
        {name: 'second', value: 'hello2'},
   ]
}

Функция возвращает false, даже не смотря на то, что строчка перед return true срабатывает и выводит в консоль here. Почему функция так работает и как это поправить? Заранее, спасибо за любую помощь!
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Может нужно так:
else return filterErrors(item)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
01 июн. 2024, в 19:07
100000 руб./за проект
01 июн. 2024, в 18:41
100 руб./за проект
01 июн. 2024, в 18:33
3000 руб./за проект