我有以下对象:
var myObj =
{
prop1 : 'val',
prop2 : 'val'
},
hisObj =
{
prop1 : 'val',
prop2 : 'val'
},
herObj =
{
prop1 : 'val',
prop2 : 'val'
};
现在我运行ajax调用并将3组数据作为数组返回。每个数组的关键字都等于:my
,his
和her
。
如何将正确的对象分配给处理ajax响应的函数中的私有变量。我试着这个开始:
function ajax_callback(data)
{
$.each( data, function( key , value )
{
var options = key + 'Obj';
...
});
};
在这种情况下, var options
正好属于string
类型。我如何动态创建变量options
以包含正确的对象而不是其名称的字符串表示?
答案 0 :(得分:2)
我不确定你在这里要做什么。但是你可能需要在另一个对象中“命名”你的对象。怎么样:
var obj = {
her: {
prop1: 'val',
prop2: 'val'
},
his: {
prop1: 'val',
prop2: 'val'
}
/// etc
function ajax_callback(data) {
$.extend( obj, data ); // merge the data with the previously defined object
});
或者,如果您想根据响应键从对象中提取条目:
function ajax_callback(data) {
$.each( obj, function( key, val {
var options = obj[key];
});
});
答案 1 :(得分:1)
将变量放入对象中,然后使用密钥作为索引:
var parentObj =
myObj: {
prop1 : 'val',
prop2 : 'val'
},
hisObj: {
prop1 : 'val',
prop2 : 'val'
},
herObj: {
prop1 : 'val',
prop2 : 'val'
}
};
function ajax_callback(data) {
$.each( data, function( key , value ) {
var options = parentObj[key];
...
}
}