我正在尝试从 JSON 提要中填充一个数组。我的代码看起来像这样:
// multiple arrays
var linje_1 = []
var linje_2 = []
// loop from json feed to populate array
for( var i = 0; i < data.length; i++) {
// I'm trying to "build" the array here. I know for sure that data[i] is good value that match the suffix of the array.
arrayname = 'linje_'+data[i];
arrayname.push({ label: data[i].x_+''+sid[a]+'', y: data[i].y_+''+sid[a]+'' })
}
有人对如何解决上述问题有什么建议吗?
问题是代码不接受 arrayname
,但如果我更改并硬编码 linje_1
,一切都会按预期工作。
最佳答案
当你定义一个变量 arrayname = 'linje_'+data[i];
时,它的类型是 String。字符串不是数组,不能像数组一样对待它们,它们没有数组方法。
如果你想动态构造变量的名字,你能做的最好的事情就是使用对象和它的键:
var lines = {
linje_1: [],
linje_2: []
};
for (var i = 0; i < data.length; i++) {
var arrayname = 'linje_' + data[i];
lines[arrayname].push({ label: data[i].x_ + sid[a], y: data[i].y_ + sid[a]});
}
另请注意,我稍微清理了代码(例如 data[i].x_ + '' + sid[a] + ''
)。
关于Javascript - 在循环中构建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28841973/