@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. Почему функция так работает и как это поправить? Заранее, спасибо за любую помощь!
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Может нужно так:
else return filterErrors(item)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект