Javascript NodeJs多维数组-无法读取未定义的属性

Javascript NodeJs多维数组-无法读取未定义的属性,javascript,node.js,multidimensional-array,socket.io,Javascript,Node.js,Multidimensional Array,Socket.io,我试图使用动态索引I,j更改多维数组中元素的值(9行,每行有9个元素,每个元素是由4个元素组成的数组),但我遇到错误“无法读取未定义的属性'8',其中8是I的值。如果我用一些固定的数字代替I,j,比如1,2,那么就没有错误。请注意,变量cellid将是一个两位数,如11,12…19,21,22…29,91,92…99。我使用这个数字提取相应的索引值I和j io.on("connect", (socket) =>{ console.log("socket id&

我试图使用动态索引I,j更改多维数组中元素的值(9行,每行有9个元素,每个元素是由4个元素组成的数组),但我遇到错误“无法读取未定义的属性'8',其中8是I的值。如果我用一些固定的数字代替I,j,比如1,2,那么就没有错误。请注意,变量cellid将是一个两位数,如11,12…19,21,22…29,91,92…99。我使用这个数字提取相应的索引值I和j

io.on("connect", (socket) =>{
console.log("socket id" + socket.id);
socket.on("inputnum", inputnum => {
    const issuccess = dotask(inputnum, socket.id);
    if(issuccess)
        socket.emit("inputnumchanged", object)
})
}



function dotask(inputnum, socketid){
var cellid = null;
object.highlightedcell.forEach(e => {
    if(e.clientid == socketid)  
        cellid = e.cellid;
})
if(!cellid)
    return null; //no cell was selected
const i= cellid/10 -1 , j= cellid%10 -1;
object.initialarray[i][j][2] = inputnum;
return 1;
}
这就是对象“object”的外观

{ initialarray: [


 [
    [ 7, 1, 0, 0 ],
    [ 9, 1, 0, 0 ],
    [ 2, 1, 0, 0 ],
    [ 4, 0, 0, 0 ],
    [ 8, 1, 0, 0 ],
    [ 3, 0, 0, 0 ],
    [ 6, 1, 0, 0 ],
    [ 5, 0, 0, 0 ],
    [ 1, 0, 0, 0 ]
  ],
  [
    [ 8, 0, 0, 0 ],
    [ 6, 0, 0, 0 ],
    [ 5, 1, 0, 0 ],
    [ 9, 0, 0, 0 ],
    [ 7, 0, 0, 0 ],
    [ 1, 1, 0, 0 ],
    [ 4, 0, 0, 0 ],
    [ 3, 1, 0, 0 ],
    [ 2, 1, 0, 0 ]
  ],
  [
    [ 4, 0, 0, 0 ],
    [ 3, 0, 0, 0 ],
    [ 1, 1, 0, 0 ],
    [ 6, 1, 0, 0 ],
    [ 5, 1, 0, 0 ],
    [ 2, 0, 0, 0 ],
    [ 9, 0, 0, 0 ],
    [ 7, 1, 0, 0 ],
    [ 8, 0, 0, 0 ]
  ],
  [
    [ 9, 0, 0, 0 ],
    [ 5, 0, 0, 0 ],
    [ 8, 1, 0, 0 ],
    [ 7, 0, 0, 0 ],
    [ 6, 1, 0, 0 ],
    [ 4, 0, 0, 0 ],
    [ 2, 1, 0, 0 ],
    [ 1, 0, 0, 0 ],
    [ 3, 1, 0, 0 ]
  ],
  [
    [ 6, 1, 0, 0 ],
    [ 7, 1, 0, 0 ],
    [ 3, 1, 0, 0 ],
    [ 2, 1, 0, 0 ],
    [ 1, 0, 0, 0 ],
    [ 9, 1, 0, 0 ],
    [ 8, 0, 0, 0 ],
    [ 4, 1, 0, 0 ],
    [ 5, 0, 0, 0 ]
  ],
  [
    [ 2, 0, 0, 0 ],
    [ 1, 1, 0, 0 ],
    [ 4, 0, 0, 0 ],
    [ 8, 1, 0, 0 ],
    [ 3, 0, 0, 0 ],
    [ 5, 0, 0, 0 ],
    [ 7, 1, 0, 0 ],
    [ 9, 0, 0, 0 ],
    [ 6, 1, 0, 0 ]
  ],
  [
    [ 5, 1, 0, 0 ],
    [ 8, 0, 0, 0 ],
    [ 9, 0, 0, 0 ],
    [ 1, 0, 0, 0 ],
    [ 4, 1, 0, 0 ],
    [ 6, 1, 0, 0 ],
    [ 3, 1, 0, 0 ],
    [ 2, 0, 0, 0 ],
    [ 7, 1, 0, 0 ]
  ],
  [
    [ 3, 0, 0, 0 ],
    [ 4, 1, 0, 0 ],
    [ 7, 1, 0, 0 ],
    [ 5, 1, 0, 0 ],
    [ 2, 0, 0, 0 ],
    [ 8, 1, 0, 0 ],
    [ 1, 0, 0, 0 ],
    [ 6, 0, 0, 0 ],
    [ 9, 1, 0, 0 ]
  ],
  [
    [ 1, 1, 0, 0 ],
    [ 2, 1, 0, 0 ],
    [ 6, 0, 0, 0 ],
    [ 3, 1, 0, 0 ],
    [ 9, 1, 0, 0 ],
    [ 7, 1, 0, 0 ],
    [ 5, 0, 0, 0 ],
    [ 8, 1, 0, 0 ],
    [ 4, 0, 0, 0 ]
  ]
], 
highlightedcell : [], 
inputnum : {inputnum: null, inputterid : null},
correctcount : 0,
requiredcorrect : 81-43,
issolved : 0

}
下面是控制台错误的屏幕截图。
我从我的一个同事那里得到了帮助。在“const i=cellid/10-1,j=cellid%10-1”行中,我将成为一个浮点数,而不是一个整数。这就是问题所在。我把天花板改为I,问题就解决了。

问题中有一个拼写错误。“”无法读取未定义的“其中8是i的值”的属性“8”。8不是“i”的值,而是“j”的值