JSFiddle - React, Tailwind, and code Playground
by Andrey
JavaScript
document.addEventListener('DOMContentLoaded', askPromoCode());
function askPromoCode() {
let isPromoCodeCorrect = false;
let promoCode;
while (!isPromoCodeCorrect) {
promoCode = +prompt('Введите Промокод');
isPromoCodeCorrect = validatePromoCode(promoCode);
}
createArrNum(promoCode);
}
function validatePromoCode (promoCode) {
if (isNaN(promoCode)) {
validationErrorNotification("Вы ввели не число");
return false;
}
if (!promoCode) {
validationErrorNotification("Вы ничего не ввели");
return false;
}
if (numDigits(promoCode) < 8) {
// todo: "Промокод состоит из 8 цифр", у тебя проверка только "если не меньше"
// todo: "другие различные символы отличные от цифр недопустимы" проверь 1234567.8
validationErrorNotification("Вы ввели менее 8 символов");
return false;
}
return true;
}
function numDigits (promoCode) {
return Math.max(Math.floor(Math.log10(Math.abs(promoCode))), 0) + 1;
}
function validationErrorNotification (error) {
alert(error);
}
////////////////////////////////////////// Создаю массив из отдельных чисел
function createArrNum(number) {
output = [];
while (number) {
output.push(number % 10);
number = Math.floor(number / 10);
}
output.reverse();
getResult(output);
}
////////////////////////////////////// Создаю отдельную функцию которая будет проверять все исходы и последовательности
function getResult(output) {
/// Функция проверяет отношение кратных чисел к некратным
function SumEvenOdds(output) {
let sumEven = 0;
let sumOdd = 0;
for (let a = 0; a < output.length; a++) {
if (output[a] % 2) {
sumEven += output[a];
} else {
sumOdd += output[a];
}
}
if (sumEven > sumOdd) {
return false;
} else {
return true;
}
}
/// Функция проверяет что пара значений идет последовательно по возрастанию
function VerifCequence(output) {
if (
(output[0] < output[1] && output[4] < output[5]) ||
...