从变量 javascript 生成变量

make variable from variable javascript

我正在尝试将数据添加到数组中,其中数组名称的一部分是变量。

这是否有意义?

这是我的编码,我认为它与 ["charts"[d]] 部分有关,但没有向数组添加任何内容

    var 
    charts0 = [],
    charts1 = [],
    charts2 = [],
    charts3 = []
    var newdata = data.split("|");
    var newdates = dates.split(",");
    for (i = 0; i < newdates.length; i++) { 
        for (d = 0; d < newdata.length; d++) { 
        var dataparts = newdata[d].split(",");
        ["charts"[d]].push({x: newdates[i], y: dataparts[i+1]});

        }
    }

使用对象文字作为关联数组。

var charts = {
  charts0: [],
  charts1: []
};


/* ... */

charts['charts' + d].push( // ...

但是如果你打算这样做,你可以简单地使用一个数组,其中索引是隐式的:

var charts = [[],[]];

/* ... */

charts[d].push( // ...

使用您的数组创建一个新对象,例如

var ch = {
    charts0: [],
    charts1: [],
    charts2: [],
    charts3: []
}

然后你就可以做 ch["charts" + d][i] 等..

您现在使用的方法是不可能的(不使用 eval,您不应该这样做)。但是,您可以使用对象为变量添加额外的 'layer' 。像这样:

var myData = {
    charts0: [],
    charts1: []
    charts2: []
    charts3: []
};

var newdata = data.split("|");
var newdates = dates.split(",");

for (i = 0; i < newdates.length; i++) { 
    for (d = 0; d < newdata.length; d++) { 
           var dataparts = newdata[d].split(",");
           myData['charts' + d].push({x: newdates[i], y: dataparts[i+1]});
    }
}