簡體   English   中英

2維數組和getElementsByName

[英]2dimensional array and getElementsByName

我正在嘗試重新編碼數獨游戲,以用於智能電視。 我想找到一開始沒有填補的空白單元格。 我宣告了二維

var emptyCellsArray =new Array(9);
    emptyCellsArray[0] = new Array();
    emptyCellsArray[1] = new Array();
    emptyCellsArray[2] = new Array();
    emptyCellsArray[3] = new Array();
    emptyCellsArray[4] = new Array();
    emptyCellsArray[5] = new Array();
    emptyCellsArray[6] = new Array();
    emptyCellsArray[7] = new Array();
    emptyCellsArray[8] = new Array();

編寫功能

function fillEmptyCellsArray() {
for ( var i= 1 ; i<=9; i++) {
for (var k=1 ; k<=9; k++) {
        emptyCellsArray[i][k] = 0;          
};   //k end
}; //i end  

for ( var i= 1 ; i<=9; i++) {
var flag = 0;
    for (var k=1 ; k<=9; k++) {
        if ( !(document.getElementsByName(i+'_'+k)[0].value == "" )  ) {
            //add this cell to the array
            emptyCellsArray[i][flag] = 1;
            flag++; 
        }  //end if 
    };   //k end
}; //i end

alert("XX------" + emptyCellsArray[0][0]  );

}; //function end

然后調用該函數。

$(document).ready(function () {
    fillEmptyCellsArray();
}); 

但我收到此錯誤輸出。

錯誤詳細信息:TypeError:document.getElementsByName(i +“ _” + k)[0]未定義

來自此行---> if(!(document.getElementsByName(i +'_'+ k)[0] .value ==“”)

我不是專業人士,我無法弄清楚。 我怎么了 我認為問題出在聲明部分。 有人可以啟發我嗎?

第二個版本現在所有數組都填充了1

function fillEmptyCellsArray() {
for ( var i=0 ; i<9; i++) {
    for (var k=0 ; k<9; k++) {
        emptyCellsArray[i][k] = 0;          
    };   //k end
}; //i end  

for ( var i= 0; i<9; i++) {
    for (var k=0 ; k<9; k++) {
        if ( !(document.getElementsByName(i+'_'+k)[0].value == "" )  ) {
            //add this cell to the array
            emptyCellsArray[i][k] = 1;
        }  //end if 
    };   //k end
}; //i end

for ( var i=0 ; i<9; i++) {
    for (var k=0 ; k<9; k++) {
        alert ( emptyCellsArray[i][k] );            
    };   //k end
}; //i end  

}; //功能結束

現在,示例名稱從0開始,循環從1開始。您是否具有9_9元素,或者是最后一個8_8。

我猜你真的希望你的循環看起來像這樣

for ( var i= 0 ; i<9; i++) {
    var flag = 0;
    for (var k=0 ; k<9; k++) { 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM