Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';1';未定义错误的定义_Javascript_Html - Fatal编程技术网

Javascript 无法读取属性';1';未定义错误的定义

Javascript 无法读取属性';1';未定义错误的定义,javascript,html,Javascript,Html,我检查了一些与我非常相似的问题,并尝试了我所知道的一切。这只虫子快把我逼疯了 我正在做一个“游戏”,它由一个NxN表组成,表中有数字1-8和数字0(这些数字表示为图像文件,数字0是透明图像)。这个游戏的目的是把所有的数字按顺序排列。这是一个链接,让你对我说的内容有一个简单的了解--> 因此,当我单击数字2(在示例中)时,它应该下降,而透明图像应该上升(更改src) 这是我的代码: <script language="JavaScript"> const N=3; var aTabl

我检查了一些与我非常相似的问题,并尝试了我所知道的一切。这只虫子快把我逼疯了

我正在做一个“游戏”,它由一个NxN表组成,表中有数字1-8和数字0(这些数字表示为图像文件,数字0是透明图像)。这个游戏的目的是把所有的数字按顺序排列。这是一个链接,让你对我说的内容有一个简单的了解-->

因此,当我单击数字2(在示例中)时,它应该下降,而透明图像应该上升(更改src)

这是我的代码:

 <script language="JavaScript">
const N=3;
var aTabla= CrearTabla(N);

document.write("<table>");
for (f=0;f<N;f++){
    document.write("<tr>");
    for (c=0;c<N;c++){
        document.write("<td>");
        document.write('<img src = "Numbers2/n'+aTabla[f][c]+'.gif" id="im'+f+c+'" onclick="mover('+f+','+c+');tiempo()" >');
        document.write("</td>");
    }
    document.write("</tr>");
}
document.write("</table>");


function mover(f,c){

    //Derecha
    if(aTabla[f][c+1] == 0){

        aAux = aTabla[f][c+1];
        aTabla[f][c+1] = aTabla[f][c];
        aTabla[f][c] = aAux;

        aux = document.images["im"+f+(c+1)].src;
        document.images["im"+f+(c+1)].src = document.images["im"+f+c].src;
        document.images["im"+f+c].src = aux;
    }//Izquierda
    if(aTabla[f][c-1] == 0){

        aAux = aTabla[f][c-1];
        aTabla[f][c-1] = aTabla[f][c];
        aTabla[f][c] = aAux;

        aux = document.images["im"+f+(c-1)].src;
        document.images["im"+f+(c-1)].src = document.images["im"+f+c].src;
        document.images["im"+f+c].src = aux;
    }
    //Arriba
    if(aTabla[f-1][c] == 0 && aTabla[f-1][c] != 'undefined'){

        aAux = aTabla[f-1][c];
        aTabla[f-1][c] = aTabla[f][c];
        aTabla[f][c] = aAux;

        aux = document.images["im"+(f-1)+c].src;
        document.images["im"+(f-1)+c].src = document.images["im"+f+c].src;
        document.images["im"+f+c].src = aux;
    }
    //Abajo 
    if(aTabla[f+1][c] == 0 && aTabla[f+1][c] != 'undefined'){

        aAux = aTabla[f+1][c];
        aTabla[f+1][c] = aTabla[f][c];
        aTabla[f][c] = aAux;

        aux = document.images["im"+(f+1)+c].src;
        document.images["im"+(f+1)+c].src = document.images["im"+f+c].src;
        document.images["im"+f+c].src = aux;
    }



}

常数N=3;
var aTabla=CrearTabla(N);
文件。填写(“”);

对于(f=0;f您需要做的是检查您是否始终访问有效位置,即行和列都在0和2之间。在您的函数中,我们可以假设(f,c)是板中的有效位置。但是像(f-1,c)这样的东西可能并不总是有效位置。因此,您需要检查它们:

if(c+1 <= 2 && aTabla[f][c+1] == 0){...
if(c-1 >= 0 && aTabla[f][c-1] == 0){...
if(f-1 >= 0 && aTabla[f-1][c] == 0){...
if(f+1 <= 2 && aTabla[f+1][c] == 0){...
如果(c+1=0&&aTabla[f][c-1]==0){。。。
如果(f-1>=0&&aTabla[f-1][c]==0{。。。

如果(当你调试这个时,哪一行会抛出错误?那一行的变量值是什么?这些值来自哪里?//Arriba if(aTabla[f-1][c]==0&&aTabla[f-1][c]!='undefined')和这个//Arriba if(aTabla[f-1][c]==0&&aTabla f-1][c]!='undefined')然后,
aTable
未定义或
aTable[f-1]
未定义。它是哪一个?您希望它在哪里定义?您需要调试它。是的
aTable[f-1]
是未定义的,这就是为什么我把
!=“未定义的”
不知道如何调试它:我认为你不知道我的意思。你没有试图引用
aTabla[f][c-1]
上的任何属性,所以它当然不会失败。但是你正在尝试引用
aTabla[f-1]上的属性
,根据您的说法,它是未定义的。您不能在
未定义的
上引用属性。这正是错误告诉您的。仅仅因为您可以在其他事物上引用属性,并不能改变您不能在
未定义的
上引用属性的事实。谢谢您的回答。我看不到:是