2012-07-05 26 views
-1

我有一個函數SWFUpload_config,它接受一個參數post_params_arr - 一個對象。動態指定對象鍵和值的「for」

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,我在哪裏分配鍵和值?

回答

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]; 
    } 
} 
+0

不但值,而且密鑰必須從參數post_params_arr – ihtus 2012-07-05 16:03:43

+0

@ihtus通過動態拍攝:任何你不能僅僅使用'post_params_arr'而不是'swfu_settings'? – Ryan 2012-07-05 16:04:33

+0

我編輯了prim帖子:因爲swfu_settings已經'SWFSESSID':session_id和其他鍵值:必須將post_params_arr中的值添加到swfu_settings – ihtus 2012-07-05 16:08:25