Javascript 二维数组和getElementsByName
我正在尝试重新编码一个数独游戏,以便在智能电视中使用。我想找到拼图开始时没有填充的空白单元格。我宣布了一个二维arayJavascript 二维数组和getElementsByName,javascript,Javascript,我正在尝试重新编码一个数独游戏,以便在智能电视中使用。我想找到拼图开始时没有填充的空白单元格。我宣布了一个二维aray var emptyCellsArray =new Array(9); emptyCellsArray[0] = new Array(); emptyCellsArray[1] = new Array(); emptyCellsArray[2] = new Array(); emptyCellsArray[3] = new Array();
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
但是我得到了这个错误输出
错误详细信息: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
函数fillEmptyCellsArray(){
对于(var i=0;i现在,您的示例名称从0开始,循环从1开始。您有9_9元素还是最后一个8_8元素
我猜你真的希望你的循环看起来像这样
for ( var i= 0 ; i<9; i++) {
var flag = 0;
for (var k=0 ; k<9; k++) {
用于(var i=0;我忘了提到,我正在尝试访问这些对象:这只是一个问题。如果从k=1和i=1开始,您是否会达到0\u 0
?因为您应该在实际尝试访问之前检查数组长度。谢谢,问题实际上已经解决,但另一个问题是所有数组都变成了1。是吗javascript如此脆弱,还是我犯了所有的错误。
for ( var i= 0 ; i<9; i++) {
var flag = 0;
for (var k=0 ; k<9; k++) {