如何在javascript中动态创建obj属性?

时间:2014-12-14 02:17:20

标签: javascript

我想创建一个像这样的JSON:

{
   '2014-1-1':
             {
             'objA':
                   {
                        'attrA': 'A'
                        'attrB': 'B'
                   }
             }

}

我试过了:

  obj['2014-1-1'] = {'objA' : { 'attrA' : 'A'}};

  obj['2014-1-1'] = {'objA' : { 'attrB' : 'B'}};

但我现在只在我的对象上看到B值,我猜'因为'objA'被覆盖了,我如何为objA添加'attrA'和'attrB'?

2 个答案:

答案 0 :(得分:1)

属性存在后,只需访问它并设置一个值,不要覆盖:

obj['2014-1-1'] = {'objA' : { 'attrA' : 'A'}};
obj['2014-1-1']['objA']['attrB'] = 'B';

您可能只是想检查该属性是否存在,如果不存在,则创建它,然后分配:

if (!obj['2014-1-1'].hasOwnProperty('objA')) {
    obj['2014-1-1']['objA'] = {}
}

obj['2014-1-1']['objA']['attrA'] = 'A';
obj['2014-1-1']['objA']['attrB'] = 'B';

答案 1 :(得分:0)

它无法正常工作,因为您正在覆盖该对象。你可以这样做:

obj['2014-1-1'] = {'objA' : { 'attrA' : 'A', 'attrB' : 'B'}};

attrAattrBobjA的两个不同属性,因此您可以这样设置它们。