[英]2dimensional array and getElementsByName
I am trying to recode a sudoku game to be used in smart tv's. 我正在尝试重新编码数独游戏,以用于智能电视。 I want to find empty cells that the puzzle didn't fill at the beginning.
我想找到一开始没有填补的空白单元格。 I declared a 2 dimensional aray
我宣告了二维
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();
write the function 编写功能
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
then called the function. 然后调用该函数。
$(document).ready(function () {
fillEmptyCellsArray();
});
but i am getting this error output. 但我收到此错误输出。
Error Detail : TypeError: document.getElementsByName(i + "_" + k)[0] is undefined 错误详细信息:TypeError:document.getElementsByName(i +“ _” + k)[0]未定义
coming from this line---> if ( !(document.getElementsByName(i+'_'+k)[0].value == "" ) 来自此行---> if(!(document.getElementsByName(i +'_'+ k)[0] .value ==“”)
I am not pro, i couldn't figure it out. 我不是专业人士,我无法弄清楚。 What is my mistake?
我怎么了 I think the problem is in the declaration part.
我认为问题出在声明部分。 Can anybody enlighten me?
有人可以启发我吗?
second version now all array filled with 1's 第二个版本现在所有数组都填充了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
}; }; //function end
//功能结束
Now your example names start at 0 and your loops start at 1. Do you have 9_9 element or is the last one 8_8. 现在,示例名称从0开始,循环从1开始。您是否具有9_9元素,或者是最后一个8_8。
I am guessing you really want your loops to look like this 我猜你真的希望你的循环看起来像这样
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.