我是JavaScript的新手,我正在做这个颜色猜测游戏作为一项任务。我的剧本在下面。我尝试了很多我能想到的不同方式,但我就是无法做到。
总之,我有两个问题。
- 如何检查用户键入的值是否存在于数组中
- 如果用户在没有值的情况下单击"确定",我如何确保排除空值?在此处输入代码
脚本在下面。如果你运行该程序,它将显示用户猜测的答案(仅用于测试)。如果用户猜测正确,则页面颜色将为该颜色。任何帮助都将不胜感激。
<DOCTYPE! HTML>
<HTML>
<HEAD>
<TITLE>Color Guessing Game</TITLE>
</HEAD>
<body onload="do_game()">
<script type="text/javascript">
var target;
var target_index;
var guess_input;
var finished = false;
var guess_input_text;
var guesses = 0
var color= ["Blue","Coral","Cyan","Fuchsia","Gold","Lavender","Lime","Red","Tan"];
var myBody=document.getElementsByTagName("body")[0];
var check_color = colors.indexOf(guess_input);
function do_game(){
var random_number_integer = colors[Math.floor(Math.random() * colors.length-1)];
target = random_number_integer;
alert(target);
while (!finished) {
guess_input_text = prompt("I am thinking of one these colors: nnn" +
colors.toString() +
"nnn What color am I thinkning of?");
guess_input = guess_input_text;
guesses += 1;
finsihed = check_guess();
}
}
function check_guess() {
if (guess_input == null){
alert("Type in a color.");
return false;
}
if (guess_input > target){
alert("Your input is alphabetically lower than mine!" +
"nnPlease Try Again.nn");
return false;
}
if (guess_input < target){
alert("Your input is alphabetically higher than mine!" +
"nnPlease Try Again.nn");
return false;
}
alert("Yes!!!, the correct color was: " + target +
"nnn The Number of guesses:" + guesses +
"nnnGood Jobnnn");
myBody.style.background=guess_input;
return true;
}
</script>
</body>
</HTML>
答案1:使用indexOf:(文档)
答案2:https://stackoverflow.com/a/20533178/3603806
// check whether the array or string empty
function is_empty(obj){
if (obj == null || (obj == '' && obj.length == 0)){
return true;
}
else {
return false;
}
}
// check whether this elem is included in arr
function is_included(elem, arr){
if (is_empty(arr) || is_empty(elem) || arr.toString().indexOf(elem) == -1){
return false;
}
else {
return true;
}
}