Javascript 将变量与静态名称混合以创建动态变量
我有一个名为“notes”的多维数组。它有字段“note1”、“note2”和“note3” 我有一个名为“noteNum”的变量,可以设置为1、2或3 如果“noteNum=2”,则“notes[0].note+noteNum”应等于“notes[0].note2”。但我似乎无法附加变量?为什么不呢 我的代码如下:Javascript 将变量与静态名称混合以创建动态变量,javascript,Javascript,我有一个名为“notes”的多维数组。它有字段“note1”、“note2”和“note3” 我有一个名为“noteNum”的变量,可以设置为1、2或3 如果“noteNum=2”,则“notes[0].note+noteNum”应等于“notes[0].note2”。但我似乎无法附加变量?为什么不呢 我的代码如下: // Array constructor function notesConstructor(note1, note2, note3) { this.note1 = not
// Array constructor
function notesConstructor(note1, note2, note3) {
this.note1 = note1;
this.note2 = note2;
this.note3 = note3;
}
var notes = new Array();
notes[0] = new notesConstructor("Note 1A example note", "Note 2A example note", "Note 3A example note");
notes[1] = new notesConstructor("Note 1B example note", "Note 2B example note", "Note 3B example note");
console.log(notes[0].note1); // "Note 1A example note"
// WHERE THE PROBLEM IS...
var noteNum = 2;
console.log(notes[0].note + noteNum); // This SHOULD be "Note 2A example note" but it doesn't work
小提琴:试试
console.log(notes[0][“note”+noteNum])
试试这样的方法:
console.log(notes[0][“note”+noteNum])代码>
现在,您正试图访问未定义的字段“note”。括号表示法,obj[prop]
I得到“TypeError:“未定义”不是对象(评估'notes[0].note[noteNum]')“您正在查找的是notes[0][“note”+noteNum]
”它有字段“note1”、“note2”和“note3”–为什么这些是单变量,而不是数组?然后,您可以通过索引轻松地访问它们……经验法则:每当您开始在变量名中使用“编号”时,您就错了。@CBroe,泛化是。。。通常也是错误的;)一切都取决于实现,特别是如果这些名称是表示某些数据的字段。虽然如果数字堆积起来,开始有两个数字,它是。。。一般来说,情况开始变得一团糟。