indexOf()显示意外值
indexOf() showing unexpected value
在执行警报时,第一个元素的索引即紫色显示为-1。但这对于得到正确的结果是出乎意料的。因此,我不能得到预期的结果,任何人帮助我,这样我就可以在编码进一步。实际上我新的javascript,所以我面临这样的问题。
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;
}
您说您的guess_input
是violet
,它返回-1
这是正常行为,因为violet
不存在于您的数组
["voilet","indigo","blue","green","yellow","orange","red"];
有一个打字错误:你写voilet
而不是violet
检查数组中violet的拼写。
和
if (colors.indexof(guess_input) < 0) {
alert('not present');
return false;
}
这里也有一个错别字。应该是:
colors.indexOf(guess_input)
guess_input
在do_game
函数内部定义了一个var
,所以它不是全局的。
您需要删除var
,以便可以在其他方法中访问它或将其传递给其他方法。
/* fixed spelling here */
var colors = ["violet", "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) {
/* removed var here */
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() {
/* fixed typo here */
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;
}
do_game()
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- NodeJS中的Parse Json文件在Node中显示意外结果
- Javascript do/while循环显示意外结果
- 代码显示意外行为
- 跨 ajax 请求到服务器返回的 json 对象显示错误意外令牌:
- 画布显示意外的颜色,并且不会显示反转的图像
- cakephp调试信息意外显示
- winjs:当显示页面时,会自动显示意外的字符串
- 使用Angular.js和UI Router突出显示菜单时出现意外类
- 嵌套循环中出现意外中断;t显示在调试器中
- 无法显示数据.SyntaxError:JSON.parse:JSON数据的第1行第1列出现意外字符
- react本机选项卡导航器npm模块在静态proptype中显示意外的令牌
- 硒IDE-显示意外警报!生成随机电子邮件ID时
- 意外的标记,.asp值显示为未定义
- eval(element.innerHTML)显示意外的语法错误
- indexOf()显示意外值
- 正在比较显示意外结果的日期对象
- 当鼠标离开SVG空间时,在鼠标上方突出显示节点会导致意外行为