[英]Javascript Uncaught TypeError: Cannot read property '0' of undefined
[英]Uncaught TypeError: Cannot read property '0' of undefined in JavaScript Memory game
我的 JavaScript memory 游戲有問題,它應該創建一些<div/>
作為我們的 memory 游戲卡和列在按下開始按鈕之前他想要輸入的數量。 但不知何故,我收到一條錯誤消息: Uncaught TypeError: Cannot read property '0' of undefined 。 這是負責創建 div 表的代碼,而不僅僅是:
function GameBoard(n,m) {
this.n = n;
this.m = m;
score = 0;
//n*m%2==0
picBoard = new Array(n);
last = -1;
accepTab = new Array(n*m/2);
for (var i=0; i<accepTab.length; i++){
accepTab[i] = 0;
}
for (var i=0; i<picBoard.length; i++){
picBoard[i] = new Array(m);
for (var j=0; j<picBoard[i].length; j++){
picBoard[i][j] = new Picture(accepTab);
}
}
function getPicture(id) {
console.log(picBoard);
return picBoard[id[0]][id[1]].val
}
function show(obj){
val = getPicture(getId(obj.id));
$(obj).html(val);
if(last==-1){
last = val;
lastId = getId(obj.id);
} else {
if(last==val){
$('#score').html(++score);
} else {
setTimeout(function(){
$(obj).html("X");
$("#col"+lastId[0]+"_"+lastId[1]).html("X");
}, 1000);
}
last=-1;
}
}
for(var i=0; i<n; i++){
$("#board").append("<div class=row id=row"+i+"> ");
for(var j=0; j<m; j++){
$("#board #row"+i).append("<span class=col id=col"+i+"_"+j+">X");
$("#col"+i+"_"+j).bind("click", function() {
show(this);
});
}
}
}
並且控制台說問題出在 function getPicture
行,返回picBoard[id[0]][id[1]].val
。 以及用於啟動游戲的 function
var board;
function start(){
var n = document.getElementById("rows").value;
var m = document.getElementById("cols").value;
board = new GameBoard(n,m);
sec=0;
$("#start").unbind("click");
}
每當我調用沒有n
和m
變量的 function GameBoard
而不是像 3 和 4 這樣的值時,一切正常,這只是當我試圖給用戶一個選項來選擇他想要多大的 memory 卡表時.
n 和 m 是字符串,而不是數字。 所以你做的一些操作會導致不同的結果。 所以將它們轉換為數字
board = new GameBoard(+n,+m);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.