为什么显示数组[7] [0]的代码在应该有值时是否未定义?
var tnotes = [];
var index = 0;
for (var i = 0; i < 14; i++) {
tnotes[i] = [];
}
var tx = 'B4';
var notes=['B5','A5','G5','F5','E5','D5','C5','B4','A4','G4','F4','E4','D4','C4']
var getNotes = notes.indexOf(tx);
if (getNotes != -1) {
tnotes[getNotes][index][] = new Array(20)
tnotes[getNotes][index][0] = tx //B4
tnotes[getNotes][index][2] = '3sec'
index++
}
console.log(tnotes[7][0])
答案 0 :(得分:1)
在定义一个子数组时,您只会遇到语法错误。以下行不正确:
tnotes[getNotes][index][] = new Array(20)
您正在引入tnotes
数组的第三维而不定义
应该是:
tnotes[getNotes][index] = [];
或者如果你真的需要size参数:
tnotes[getNotes][index] = new Array(20);
在此之后,tnotes[7][0]
不应再为undefined
。此外,请帮自己一个忙,并确保你一直使用分号,这是一个很好的做法,可以省去你很多头痛。
更正后的代码:
var tnotes = [];
var index = 0;
for (var i = 0; i < 14; i++) {
tnotes[i] = [];
}
var tx = 'B4';
var notes = ['B5','A5','G5','F5','E5','D5','C5','B4','A4','G4','F4','E4','D4','C4'];
var getNotes = notes.indexOf(tx);
if (getNotes != -1) {
tnotes[getNotes][index] = [];
tnotes[getNotes][index][0] = tx; //B4
tnotes[getNotes][index][2] = '3sec';
index++;
}
console.log(tnotes[7][0]);