Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Javascript помогите пожалуйста

adsdsadsadsa adsdasdsadsa Ученик (115), на голосовании 6 месяцев назад
  • я совсем недавно начал изучать js и в качестве задания взял несложную регистрацию через функцию и вывод информации, изменение пароля и все такое. но в чем проблема почему код работает неккоректно?
 const prompt = require('prompt-sync') ({sigint: true}) 

function User(login, email, pass) {
this.login = userLogin;
this.email = Email;
this.pass = pass;
}


let userLogin = prompt('Введите логин для регистации: ')

let Email = prompt('Введите почту для регистрации: ')
while (!Email.endsWith('@gmail.com')) {
let Email = prompt('Почта должна заканчиваться на @gmail.com: ')
}
if (Email.endsWith("@gmail.com") == true) {

let pass = prompt('Введите пароль: ')
let passRepeat = prompt('Введите пароль повторно: ')
while (passRepeat != pass) {
let passRepeat = prompt('Пароль должен совпадать с предыдущем: ')
}
if (passRepeat == pass) {

if (passRepeat == pass && Email.endsWith("@gmail.com") == true) {
let command = prompt(`Регистрация завершена, пользователь ${userLogin} создан. Можно выполнить следующее действие: \n 1) Отобразить информацию о пользователе командой userinfo`)
}
}
}

let user = new User(userLogin, userEmail, userPass)

if (command = 'userInfo'.toLowerCase()) {
console.log(`Имя пользователя: ${user.login}\n Почта пользователя: ${user.email} \n Пароль пользователя: \n ${user.pass}`)
} else {
console.log('Команда не найдена.')
return;
}
Голосование за лучший ответ
Андрей Разуваев Ученик (107) 7 месяцев назад
 const prompt = require("prompt-sync")({ sigint: true }); 

function User(login, email, pass) {
this.login = userLogin;
this.email = Email;
this.pass = pass;
}

let userLogin = prompt("Введите логин для регистации: ");

let Email = prompt("Введите почту для регистрации: ");
while (!Email.endsWith("@gmail.com")) {
Email = prompt("Почта должна заканчиваться на @gmail.com: ");
}

let pass = prompt("Введите пароль: ");
let passRepeat = prompt("Введите пароль повторно: ");
while (passRepeat !== pass) {
passRepeat = prompt("Пароль должен совпадать с предыдущем: ");
}

console.log(
`Регистрация завершена, пользователь ${userLogin} создан. Можно выполнить следующее действие: \n 1) Отобразить информацию о пользователе командой userinfo:\n`,
);
let command = prompt();

let user = new User(userLogin, Email, pass);

if (command === "userInfo".toLowerCase()) {
console.log(
`Имя пользователя: ${user.login}\n Почта пользователя: ${user.email} \n Пароль пользователя: \n ${user.pass}`,
);
} else {
console.log("Команда не найдена.");
return;
}
Андрей РазуваевУченик (107) 7 месяцев назад
if (Email.endsWith("@ gmail.com ") == true)
Можно сократить до if (Email.endsWith("@ gmail.com "))

let command = prompt(`Регистрация ...
Переменная command объявлена в блоке if() {..., а читается вне этого блока

if (command = 'userInfo'.toLowerCase()) { Тут опечатка, ты хотел написать === вместо =

if (passRepeat == pass) {

if (passRepeat == pass
Эти проверки лишние, ты уже проверил пароли в цикле while сверху

+ Хороший совет - всегда, когда хочешь что-то сравнить, то используй ===. Два равно == только когда знаешь, что делаешь

А так всё хорошо в целом, циклы интересно использованы
adsdsadsadsa adsdasdsadsa Ученик (115) Андрей Разуваев, хорошо спасибо, а я могу объявить переменную внутри цикла через var? и еще, могу ли я как то создать список зарегистрированных пользователей?
Андрей РазуваевУченик (107) 7 месяцев назад
Для списка пользователей можно сделать что-то наподобие следующего:
const prompt = require("prompt-sync")({ sigint: true });

const users = [];

while (true) {
console.log(`
1: Создать пользователя
2: Показать список пользователей
3: Выход
`);
const command = prompt("Выберите команду: ");
if (command === "1") {
const user = users.push(user); // ... тут можно воспользоваться логикой из твоей программы и создать пользователя
console.log("Пользователь создан");
} else if (command === "2") {
console.log(users);
} else if (command === "3") {
break;
} else {
console.log("Неизвестная команда: " + command);
}
}

console.log("Конец");
Андрей РазуваевУченик (107) 7 месяцев назад
Через var можно, так будет работать, но скорее всего будет удобнее объявить переменную до цикла:
let chtoTo
while(...) {
chtoTo = ...
}
// используем chtoTo
Похожие вопросы