我正在尝试构建一个字符串数组,但我得到了一个
未捕获的TypeError:无法设置未定义的属性“0”
我真的不明白为什么,这是我的代码。
$("#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;
但是当我查看调试器时,
我的目标是在给定房间(chambres)中为床号(nbLit)指定床的尺寸(尾部)
例如,我有这个: lit80n1 lit90n1 lit120n2 lit160n3
我想输出这样的东西:
Chambre 1 -> 1 bed : 80cm, 1 bed : 90cm
Chambre 2 -> 1 bed : 120 cm
Chambre 3 -> 1 bed : 160cm
答案 0 :(得分:3)
JavaScript没有多维数组。您可以拥有的是一个数组数组,但您必须明确初始化每个“子数组”:
if (!chambres[numChambre]) {
chambres[numChambre] = [];
}
chambres[numChambre][nbLits] = taille;
答案 1 :(得分:1)
在将元素添加到数组的第二维之前,您需要定义它:
chambres[numChambre] = [];
chambres[numChambre][nbLits] = taille;