TypeError:为多维数组赋值时,Javascript中的类型错误

TypeError: Type error in Javascript when assigning a value to a multidimensional Array

本文关键字:Javascript 错误 类型 赋值 数组 TypeError      更新时间:2023-09-26

我遇到了一个奇怪的错误,我花了一整天的时间来解决这个问题,但我放弃了:(下面的代码在一个函数中,该函数从SQLite数据库中获取数据,并将结果分配到一个多维数组中,然后该函数返回这个数组。这实际上是有效的,但当数据库中的行数为3及以上时,会显示以下错误。我确信每个赋值在整个循环中都是一致的,因为我试图使用typeof来了解类型。请帮帮我。谢谢!

TypeError:类型错误

 var db = openDB();
 var arrItems = [[],[]];
 db.transaction(function(tx) {
    var rs = tx.executeSql('SELECT * FROM items WHERE category=?;', [txtcategory]);
    arrItems.length = rs.rows.length;
   for(var i = 0; i < rs.rows.length; i++) {
      arrItems[i][0] = rs.rows.item(i).category;
      arrItems[i][1] = rs.rows.item(i).date;
      arrItems[i][2] = rs.rows.item(i).descr;
      arrItems[i][3] = rs.rows.item(i).descrlong;
      arrItems[i][4] = rs.rows.item(i).value;
      }

}

您的多维数组(实际上只是一个数组数组(被声明为只有两行:

var arrItems = [[],[]];

这就是为什么当您有3行或更多行时它会失败。您可能应该在循环中添加一个新行,而不是静态地声明它。所以

var arrItems = [];

后来,类似的东西

arrItems[i] = []

根据您正在执行的操作,您可能需要首先检查该行是否已经存在。