将变量与静态名称混合以创建动态变量

时间:2013-09-22 21:27:32

标签: 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 = 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

小提琴:http://jsfiddle.net/baUaL/

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

console.log(notes[0]["note" + noteNum]);

就像现在一样,你正试图访问字段“note”,这是未定义的。

答案 1 :(得分:0)

尝试console.log( notes[0]["note"+noteNum] )