Задать вопрос
@badman4235

Знаете ли вы основы JavaScript? Возможно вы ошибаетесь?

Изучаю JS самостоятельно, на протяжении двух месяцев.прочитал 80% learn.javascript.ru и на 100% ru.code-basics.com , Stepik.org весь курс ,много чего на MDN много разной практики по типу написать тетрис, калькулятор и т.д. Решил записаться на курсы , чтобы изучить всё более подробнее. Нашёл курсы с оплатой после обучения , срок обучения 5-7 месяцев , критерии были одни : 1 знать основы JS, выполнить ТЗ, и пройти онлайн собеседование. И тут я столкнулся с рядом проблем по ТЗ. По этому поводу собственно и решил написать, чтобы узнать у людей знающих.

Вот одна из задач.

validate - валидация данных
Описание
Нужно реализовать функцию validate для проверки данных в объекте.
На вход приходит набор данных (например, данные формы) и набор правил для валидации, описанных в определенном формате.
Нужно понять, соответствуют ли данные этим правилам и, если нет, выдать информацию - какие данные каким правилам не соответствуют.

Входные данные
data - объект, где ключи - имена полей, а значения - значения примитивных типов (не массивы/объекты)
rules - объект набором правил, где ключи - имена полей, а значения - объект с правилами валидации. Правила записаны
Выходные данные - объект с полями:
result - булево значение, если ошибок не было - true, были - false
errors - если не было ошибок - пустой массив, если были - массив объектов формата с полями:
field - название поля
value - значение поля
rule - имя правила, которому не соответствует поле

И дан уже кусок кода.

function validate(data, rules) {
  for(let [key, value] of Object.entries(data)) {
    checkType(key, value, rules.key);
    for(let [keyRule, valueRule] of Object.entries(rules.key)) {
      checkType();
    }
    if(value rules.key) {
      isEmail
      return { 
        result: true,
        errors: [],
      }
    } else {
      return { 
        result: false, 
        errors: [{ 
          field: key, 
          value: value, 
          rule: 'isNumber', 
        }] 
      }
  }
}

function checkType(key, value, rules) {
  return switch(rules) {
    case (rules.isEmail): 
      return isEmail(value, rules.required);
      break;
    case (rules.isNumber): 
      return isNumber(value, rules.required);
      break;
    default;
  }
}

function isNumber(value, required = false) {
  return Number(value);
}

function isEmail(value, required = false) {
  return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value);
}


Всего подобных задач нужно решить пять
Хотел бы узнать у человеков, не слишком ли трудное задания, для поступления на курс?
И чему они меня будут учить ?если я уже запросто должен решать подобные задачи. Может я ошибаюсь, или что то не понимаю. Объясните халую .
  • Вопрос задан
  • 402 просмотра
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Вот эти ребята наверное тоже были уверены что знают основы.
FQ9jhgN.png
Построить у них получилось, вот физический объект, из кирпича и бетона. Вот только лестницей невозможно пользоваться. Но не развалилось? Основы они знают же!

Вероятно на курсе обучают чему-то большему, чем основы. Или ничему толком не обучают, а просто так рубят бабло. Без телепатии сложно определить какие курсы вы нашли, и почему там такой порог входа.
Ответ написан
@Mdmitr
Обычная валидация формы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽