当前位置: 首页 > 知识库问答 >
问题:

Javascript Typerror变量未定义。

糜运良
2023-03-14

我正在尝试使用HTML、CSS和Javascript制作一个简单的哑巴井字游戏。

在下面的播放器移动函数中,由于JSON对象中存在Typeerror,因此无法调用ComputerMove函数。

function Mymove(idValue) 
{
 var flag=0;
 var image = document.getElementById(idValue);
 if (image.src.match("blank.png")) {
 image.src = "X.png";
 flag=Check();
 if (flag==1) 
  {
  alert("You Won");
  reset();
  return;
  };
 ComputerMove();
 };
} 
function Check(){
   for (var i =0 ; i <= 8;i++) {
   var image=document.getElementById(winList[i].a);
   if (!image.src.match("blank.png")) {
   if(image.src==document.getElementById(winList[i].b).src && image.src==document.getElementById(winList[i].c).src)
   return 1;
 }
 }

下面是JSON对象:-

var winList =[
    {a:1,b:2,c:3},
    {a:4,b:5,c:6},
    {a:7,b:8,c:9},
    {a:1,b:4,c:7},
    {a:2,b:5,c:8},
    {a:3,b:6,c:9},
    {a:1,b:5,c:9},
    {a:3,b:5,c:7}];

检查功能始终有效,控制台响应如下

TypeError: winList[i] is undefined

调试时,我发现在此错误之后,计算机移动()函数永远不会被调用。所以请帮忙。

共有1个答案

齐琦
2023-03-14

您的winList数组的长度为8,索引范围为0-7。

(var i=0;i)的循环

尝试将循环条件更改为以下内容:for(var i=0;i

 类似资料:
  • 问题内容: 在jQuery的核心风格指南建议两种不同的方法来检查一个变量是否被定义。 全局变量: 局部变量: 特性: 为什么jQuery为什么对全局变量使用一种方法而对局部变量和属性使用另一种方法? 问题答案: 对于未声明的变量,将返回字符串文字,而身份检查将触发错误 “未定义foo” 。 对于局部变量(您 知道 已在某处声明),不会发生此类错误,因此进行身份检查。

  • 我试图在MySQL中创建一个过程。这是正文: 但是当我保存它时,我得到这个错误: 处理您的请求时发生了一个或多个错误: 以下查询失败:“创建定义器”=root@localhost过程getAutoFinishTimeRemaining(按_order_id INT,按_Hoursint)非确定性读取SQL数据SQL安全定义器开始声明_date_delivered datetime;声明_date_

  • This sets the value of $undefined for Smarty, default is null. Currently this is only used to set undefined variables in $global_assign to a default value. 该变量为Smarty设定没有得到定义的变量的值,默认为空.当前仅用来设定全局配置中的未定

  • 问题内容: 我知道这是一个基本问题,但是我很好奇下面的代码为什么不起作用。没有用例不会声明此变量。 我得到错误 我确定这只是我还在学习的基本GOLANG内容。 谢谢你的支持 问题答案: 块有自己的范围。在您的情况下,它们在外部不可见。 您可以在修复前声明。 文件:https://golang.org/ref/spec#Declarations_and_scope 您可能还需要阅读:Go中的声明范围

  • 问题内容: 作为Go“ newb”,我 不确定 在编译程序时为什么会在控制台中收到 未定义err 和 未定义用户 的错误。 我有: 我意识到我可以在条件块之前声明and 变量,但是我想知道为什么这不起作用。与一次性创建两个新变量有关吗? UDPATE 对此有些混乱。 我现在有: 和我的错误现在是 用户声明的,不使用 。目前,我还没有解决 错误的 部分,但是我不确定为什么会遇到用户错误。 问题答案:

  • 我是Reactjs新手,对未定义的变量有问题。在控制台日志中,我从以下React页面获得“未捕获引用错误:drawResults未定义app.js:116002”: 也许有人会建议如何修正这个错误。我在构造函数中声明了state变量,并尝试在fetchResults()方法中为其赋值,但脚本失败,变量未定义。