Javascript中的多维数组:不能设置属性'0'的定义

Multidimensional array in Javascript: Cannot set property '0' of undefined

本文关键字:属性 定义 设置 不能 数组 Javascript      更新时间:2023-09-26

我试图建立一个字符串数组,但我得到一个

Uncaught TypeError: Cannot set property '0' of undefined

我真的不明白为什么,这是我的代码。

$("#tableLits > tbody > tr input").filter(function(){ return $(this).val() !== '' }).each(function(){
    nom = $(this).attr('name');
    numChambre = parseInt(nom.charAt(nom.length-1));
    taille = nom.slice(nom.charAt(nom.length-2),-2).replace('lit','');          
    chambres[numChambre][nbLits] = taille;              
    nbLits = oldChambre == numChambre ? nbLits++ : 0;
    oldChambre = numChambre;
});
console.log(chambres);

错误在这一行:

chambres[numChambre][nbLits] = taille;  

但是当我查看调试器时,

  • chamber是一个数组
  • numchamber = 1
  • nbLit = 0

我的目标是在给定的房间(房间)中为床号(nbLit)分配床的尺寸(尾部)

编辑

例如,我有这个:lit80n1lit90n1lit120n2lit160n3

我想输出如下内容:

Chambre 1 -> 1 bed : 80cm, 1 bed : 90cm
Chambre 2 -> 1 bed : 120 cm
Chambre 3 -> 1 bed : 160cm

JavaScript没有多维数组。你可以拥有的是数组的数组,但你必须显式初始化每个"子数组":

if (!chambres[numChambre]) {
    chambres[numChambre] = [];
}
chambres[numChambre][nbLits] = taille; 

在将元素添加到数组的第二维之前,您需要定义它:

chambres[numChambre] = [];
chambres[numChambre][nbLits] = taille;