定义javascript对象

定义javascript对象,javascript,javascript-objects,Javascript,Javascript Objects,我正在尝试创建一个键值对javascript对象,如下所示: var p={'revEv':[{'EventsId':rand, if(Ext.getCmp('Val_'+id).getValue()!='E') 'Status':Ext.getCmp('Val_'+id).getValue(), 'core':Ext.fly('coreVal_'+id).dom.innerHTML, 'transactionType':{'tr

我正在尝试创建一个键值对javascript对象,如下所示:

var p={'revEv':[{'EventsId':rand, 
        if(Ext.getCmp('Val_'+id).getValue()!='E')
        'Status':Ext.getCmp('Val_'+id).getValue(),
        'core':Ext.fly('coreVal_'+id).dom.innerHTML,
        'transactionType':{'transactionTypeId':Ext.fly('oppVal_'+id).dom.innerHTML,'description':Ext.fly("oppDesc_"+id).dom.innerHTML},
        'timing':Ext.getCmp('quarter_'+id).getValue()},]}
如上所述,对于特定条目“状态”-仅当满足特定条件时,我需要创建/插入密钥。
用javascript做这件事的优雅方式是什么?

你可以这样做

var p = {};
if(condition) p.key = value;

初始化所有其他内容,然后在if语句中设置状态:

var p={'revEv':[{'EventsId':rand, 
    'core':Ext.fly('coreVal_'+id).dom.innerHTML,
    'transactionType':{'transactionTypeId':Ext.fly('oppVal_'+id).dom.innerHTML,'description':Ext.fly("oppDesc_"+id).dom.innerHTML},
    'timing':Ext.getCmp('quarter_'+id).getValue()},]}

if (Ext.getCmp('Val_'+id).getValue()!='E') {
    p.revEv[0].Status = Ext.getCmp('Val_'+id).getValue(),
}

这不是有效的JavaScript。不能在对象文本中使用
if
语句。