Javascript - 在循环中构建数组

标签 javascript arrays for-loop

我正在尝试从 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/

相关文章:

javascript - 如果其他输入没有值,则清除一个输入

javascript - 使用 Rails 4 单击按钮时显示确认对话框?

PHP 和 JQuery 聊天

arrays - 传递字符串数组和foreach循环不起作用:没有数组,只有一个字符串?

java - 尝试创建使用两个用户输入值的嵌套 for 循环

javascript - Ace JS 编辑器 - 在编辑器中启用/禁用撤消和重做按钮

c++ - 帮助理解函数和类模板之间的差异

c++ - 我认为数组是不可复制的

java - 使用for循环生成不同的字母组合

java - 基本的Java控制结构问题。