Javascript 当变量';s值是由JS中的变量组成的对象?
我在JSON格式的文件中有几个对象,它们的字符串相同,但值不同:Javascript 当变量';s值是由JS中的变量组成的对象?,javascript,Javascript,我在JSON格式的文件中有几个对象,它们的字符串相同,但值不同: { "object_1": { "data1": [1, -1], "data2": [2, -1], "data3": [3, -1], }, "object_2": { "data1": [4, -1] "data2": [5, -1], "data3": [6, -1], } } 我能够使用get
{
"object_1": {
"data1": [1, -1],
"data2": [2, -1],
"data3": [3, -1],
},
"object_2": {
"data1": [4, -1]
"data2": [5, -1],
"data3": [6, -1],
}
}
我能够使用getJSON()
检索对象中的数据:
但是我有几个对象,我不想为所有对象复制相同的三条线。我想通过使用对象id作为输入的函数来创建这些变量mydata1
mydata2
和mydata3
我的问题是,当变量的值是由变量组成的对象时,我不知道如何创建变量。例如,这里的id
是一个用于选择JSON对象的变量:object_1
或object_2
$.getJSON(url, function (json) {
var id = 1 // use id = 1 on page load
function loadJSON(id) {
// all these declaration fail
eval("var mydata1 = string.concat('json.object_', id, '.data1')");
var mydata1 = string.concat("json.object_", id, ".data1");
var mydata1 = window["json.object_" + id + ".data1"];
);
// then rewrite the data on click
$('#button_2').click(function () {
loadJSON(2);
});
$('#button_1').click(function () {
loadJSON(1);
});
)},
如何在函数中声明这些变量
谢谢,用于按变量属性名称引用值:
var mydata1 = json['object_' + id].data1;
您试图做的事情只能通过
eval()
来完成,但实际上没有意义。不要使用单个变量,而是使用对象并构造对象属性名称。json['object\'+id].data1
。。。
var mydata1 = json['object_' + id].data1;