Помогите поменять форму Switch на if-else:
я сделал скрипт чтоб компьютер создал четыре цифры рандомно(от 1 до 9) и добавил их в массив arr потом в <input> с id="num" надо разгадать число если правильно то выводится res.innerHTML а если не правильно создается новый массив.
for(i = 0; i < arr.length; i++){
switch(num){
case arr[0]:
res.innerHTML = "Nice you right" + " : " + num + "<br>";
break;
case arr[1]:
res.innerHTML = "Nice you right" + " : " + num + "<br>";
break;
case arr[2]:
res.innerHTML = "Nice you right" + " : " + num + "<br>";
break;
case arr[3]:
res.innerHTML = "Nice you right" + " : " + num + "<br>";
break;
default:
res.innerHTML = "Неправильно попробуйте угадать число снова";
mass.onclick();
}
function checkInput(arr, num) {
if (arr.indexOf(num) != -1)
return "Nice you right" + " : " + num + "<br>";
return "Неправильно попробуйте угадать число снова";
}
console.log(checkInput([1, 5, 6, 2], 2));
console.log(checkInput([1, 5, 6, 2], 9));
console.log(checkInput([14, 2345, 234234, 42342], 30));
console.log(checkInput([14, 2345, 234234, 42342, 666], 666));
arr.indexOf - возвращает первый индекс, по которому данный элемент может быть найден в массиве или -1, если такого индекса нет.
Собственно, зная это, можете применить у себя данную проверку вместо switch/case и if/elseif
P.S. по-хорошему checkInput должен возвращать не надпись, а true/false, и от него уже танцевать. Но главное, чтоб вы уловили смысл.
if(num == arr[0]){
res.innerHTML = "Nice you right" + " : " + num + "<br>";
} else if(num == arr[1]){
res.innerHTML = "Nice you right" + " : " + num + "<br>";
} else if(num == arr[2]){
res.innerHTML = "Nice you right" + " : " + num + "<br>";
} else if(num == arr[3]){
res.innerHTML = "Nice you right" + " : " + num + "<br>";
} else {
res.innerHTML = "Неправильно попробуйте угадать число снова";
mass.onclick();
}
Вариант который легче поддерживать если увеличить количество цифр.
var check = false;
for(var i in arr){
if(num == arr[i]){
check = true;
break;
}
}
res.innerHTML = check ? "Nice you right" + " : " + num + "<br>" : "Неправильно попробуйте угадать число снова";
if(!check){
mass.onclick();
}
как вариант:
let res.innerHTML = (num === arr[0]) ? "Nice you right" + " : " + num + "<br>" :
(num === arr[1]) ? "Nice you right" + " : " + num + "<br>" :
(num === arr[2]) ? "Nice you right" + " : " + num + "<br>" :
(num === arr[3]) ? "Nice you right" + " : " + num + "<br>":
"Неправильно попробуйте угадать число снова";
или даже так:
let res.innerHTML = ((num === arr[0]) || (num === arr[1]) || (num === arr[2]) || (num === arr[3])) ?
"Nice you right" + " : " + num + "<br>" :
"Неправильно попробуйте угадать число снова";
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости