Javascript 通过变量引用对象

Javascript 通过变量引用对象,javascript,jquery,Javascript,Jquery,我的目标如下 var masterData = { "region":[ {"key":"1","value":"AMS"}, {"key":"2","value":"APJ"}, {"key":"3","value":"EMEA"} ] }; var key = 'region'; var strList = 'masterData.'+key; $.each($(strList), fun

我的目标如下

var masterData = {      
    "region":[
            {"key":"1","value":"AMS"},
            {"key":"2","value":"APJ"},
            {"key":"3","value":"EMEA"}
    ]
};

var key = 'region';
var strList = 'masterData.'+key;

$.each($(strList), function(i, row) {
    alert(row.key); 
});
它没有进入循环,但是如果我用实际对象替换变量,它就会工作。例如:

$.each($(masterData.region), function(i, row) {
    alert(row.key);     
});

我想通过一个变量做同样的事情,就像第一个一样。我在这里遗漏了什么?

由于对象被视为关联数组,因此可以通过键以以下方式访问属性:

var key = 'region';
var strList = masterData[key];

这起作用了

    $.each($(eval(strList)), function(i, row) {
    alert(row.key);     
    });

我认为他们不应该为此使用
eval
,这真的没有必要。这不是JSON。这是一个对象文本。不幸的是,许多人错误地将对象文本与JSON混淆。看见