Изучаю 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);
}
Всего подобных задач нужно решить пять
Хотел бы узнать у человеков, не слишком ли трудное задания, для поступления на курс?
И чему они меня будут учить ?если я уже запросто должен решать подобные задачи. Может я ошибаюсь, или что то не понимаю. Объясните халую .