从变量 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]});
}
}
我正在尝试将数据添加到数组中,其中数组名称的一部分是变量。
这是否有意义?
这是我的编码,我认为它与 ["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]});
}
}