javascript - JS中当变量的值是由变量组成的对象时,如何声明变量?

标签 javascript

我在 JSON 格式的文件中有多个对象,它们具有相同的字符串但不同的值:

{
    "object_1": {
        "data1": [1, -1],
        "data2": [2, -1],
        "data3": [3, -1],
    },
    "object_2": {
        "data1": [4, -1]
        "data2": [5, -1],
        "data3": [6, -1],
    }
}

我可以使用 getJSON() 检索对象中的数据:

var url = "https://website.com/file.json";
$.getJSON(url, function (json) {
    var mydata1 = json.object_1.data1; 
    var mydata2 = json.object_1.data2; 
    var mydata3 = json.object_1.data3; 
});

但是我有几个对象,我不想为所有对象重复相同的三行。我想通过使用以对象 ID 作为输入的函数来创建这些变量 mydata1 mydata2mydata3

我的问题是,当变量的值是由变量组成的对象时,我无法弄清楚如何创建变量。例如,这里 id 是一个用于选择 JSON 对象的变量:object_1object_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);    
    });

)},

如何在函数中声明这些变量?

谢谢,

最佳答案

使用bracket notation通过变量属性名称引用值:

var mydata1 = json['object_' + id].data1;

关于javascript - JS中当变量的值是由变量组成的对象时,如何声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43498910/

相关文章:

javascript - React-router:ajax请求点击链接

javascript - 是否可以使用触控板进行手势操作?

javascript - 使用 node.js http-proxy 测量流量

JavaScript 单击时关闭菜单

javascript - jQuery 验证器附加方法未按预期工作

javascript - 为选项选择设置多个值并使用 jQuery 获取它们

javascript - Angular 返回一个空页面,即使所有数据都在那里

javascript - Chrome 控制台 - 这个代表 Kendo UI 小部件的东西实际上意味着什么?

javascript - 什么是 jQuery $.fly 插件?

javascript - 如何使用 Firefox/Firebug 或其他浏览器查看 jquery data()