2017-04-06 33 views
1

所以我认为在这个表单数据的对象:更改对象格式

{key1: val1, key2: val2} 

而且我想以某种方式转化为类似下面:

{first: {key1:[], val1:[]}, 
second: {key2:[], val2:[]} }; 

我试图做

object = {key1: val1, key2: val2}; 
var array = {}; 
var cc=0; 
for (var prop in object){ 
    var ob_prop = object[prop]; 
    if(cc) array['first'] = {prop:[], ob_prop:[]}; 
    else array['second'] = {prop:[],ob_prop:[]}; 
    cc++; 
} 

但是我得到了

{ second: { prop: [], ob_prop: [] }, 
first: { prop: [], ob_prop: [] } } 
+0

我不明白为什么我下投票,我解释说我想清楚什么,什么我都试过了。 – nonerth

+0

请添加源对象和你喜欢从中得到的东西。 –

+1

我会认为可能是因为缺乏研究而反对。发帖应彻底研究主题,然后张贴您尝试和/或找到的内容。关于你的发帖,也许这个问题被拒绝投票,因为答案很容易找到。为了支持你的评论,我认为人们应该在投票时留下意见。所以这里有一个投票给你。 – SoEzPz

回答

1

如由费利克斯·克林的评论中提到,试试:array['first'] = {[prop]:[], [ob_prop]:[]};

+0

nope导致编译错误,因为它自然不能设置未定义的属性key1。 – nonerth

+3

如果你认为OP可以使用'for/of'循环,那么使用计算属性可能是更简单的解决方案:'{[prop]:[],[ob_prop]:[]}''。 –

+0

谢谢,我只需要添加'''''''就可以工作,所以我想这确实是一个值得低调的愚蠢问题,所以不用'{prop:[],ob_prop:[]}' - >'{[prop]:[],[ob_prop]:[]}' – nonerth