Javascript的新手,但我确实有使用Java和Python的经验。我看了几个其他网站,看看我的代码有什么问题,我知道错误意味着该属性尚未启动或不包含任何内容,但我知道我在那里放了一些东西,所以我想我可能会让Java和Javascript混淆。
这是我的代码:
var M=5;
var N=5; //where M and N can be changed if needed
var cellsNotChecked = [];
var startAt = [Math.floor(Math.random()*M), Math.floor(Math.random()*N)];
var path = [startAt];
//then make note of cells visited or not
for(i=0; i<M+2; i++){
cellsNotChecked[i]=[];
for(j=0; j<N+1; j++){
cellsNotChecked[j].push(i>0&&i<M+1&&j>0&&(i!=startAt[0]+1||j!=startAt[1]+1));
}
}
var cellsChecked= 1;
// now keep going until the number of cells checked outweighs the number of cells not checked
while(cellsChecked<cellsNotChecked.length){
//list of potential cells to go to next
var potential = [[startAt[0], startAt[1]+1], //right: y,x+1
[startAt[0],startAt[1]-1], //left: y, x-1
[startAt[0]-1,startAt[1]], //top: (top left hand corner is 0,0, so) y-1, x
[startAt[0]+1,startAt[1]]]; //bottom: y+1, x,
var neighboringCells = [];
//do things
cellsChecked++;
}
错误显示在var potential = [[startAt[0], startAt[1]+1],...
,startAt [0]在startAt [1] +1之后一直加下划线。
就像我说的那样,我想我会给它价值,但我不知道如何检查(使用Notepad ++)。
编辑备注
在第一个for循环中添加花括号(感谢您捕捉到它,Mupparthy Ravindranath),但错误现在发生在cellsNotChecked[j].push(...)
。
完整错误状态:未捕获TypeError:无法读取未定义
的属性“push”我遇到的部分问题是,在我添加一个完全不相关的功能之前,它似乎在昨天工作。现在它根本不起作用。 Javascript代码可能会变得太长吗?