使用“for”动态分配对象键和值

时间:2012-07-05 15:56:04

标签: javascript

我有一个函数SWFUpload_config,它接受​​一个参数post_params_arr - 一个对象。

post_params_arr = {"ajaxtask":"swfupload_files", "param": "2012"}

我需要解析post_params_arr并以下列方式动态地将键和值添加到swfu_settings(请注意,swfu_settings默认为'SWFSESSID':session_id和所有其他键:值必须为从post_params_arr添加):

function SWFUpload_config (post_params_arr) {
    var swfu_settings = {
        'SWFSESSID' : session_id,
        'ajaxtask' : 'swfupload_files',
        'param' : '2012'
    };
}

我怎样才能实现这一目标?如何在post_params_arr内解析swfu_settings我分配键和值的位置?

1 个答案:

答案 0 :(得分:0)

与访问任何其他对象的方式相同......

var swfu_settings = {
    ajaxtask: post_params_arr.ajaxtask,
    param: post_params_arr.param
};

或者你的意思是它的JSON?如果您有jQuery,请使用jQuery.parseJSON解析它;否则,请使用JSON.parse并返回eval('(' + post_params_arr + ')')


如果由于某种原因需要浅层克隆对象,for in循环将起作用:

var swfu_settings = {
    SWFSESSID: 'blah'
    // etc.
};

for(var x in post_params_arr) {
    if(post_params_arr.hasOwnProperty(x)) {
        swfu_settings[x] = post_params_arr[x];
    }
}