最初の要素のインデックス、つまり紫色が-1と表示されている間に、正しい結果を得るために予期せぬことが起こります.Hen私は期待どおりの結果を得ることができません。それは私がさらに問題に直面しているので、私はjavascriptに実際にコーディングすることができます。私はあなたができるだけ早く答えてくれることを願っています。予期しない値を示すindexOf()
var colors = ["voilet", "indigo", "blue", "green", "yellow", "orange", "red"];
var target;
var target_index;
var guess_input;
var finished = false;
function do_game() {
var random_number = Math.random() * 7;
var random_number_integer = Math.floor(random_number);
var target_index = random_number_integer;
target = colors[target_index];
alert(target);
while (!finished) {
var guess_input = prompt("I am thinking of a color " +
"violet,indigo,blue,green,yellow,orange,red" +
"What is the color?");
alert(colors.indexOf(guess_input));
finished = check_guess();
}
}
function check_guess() {
if (colors.indexof(guess_input) < 0) {
alert('not present');
return false;
}
if (guess_input > target) {
alert('you gave large');
return false;
}
if (guess_input < target) {
alert('you gave small');
return false;
}
return true;
}
'indexOf'は、要素が配列内に見つからなかった場合に' -1'を返します。 'colors'配列(バイオレットの代わりにvoilet)にタイプミスがあります。 – AbM
FYI:ここでの問題は実際の問題ではないので、簡単な誤植で閉じるべきではありません。入力ミスを修正するための投票された回答のトップは、コードを修正するものではありません。 – epascarello
typoがコードを修正しました。これはエラー – Weedoze