2012-09-20 32 views
2

我擬出售其在計算器和谷歌這樣的解決方案,但這個是 想法如何有條件地在javascript中創建對象內的成員?

a = { 
    b: (conditionB? 5 : undefined), 
    c: (conditionC? 5 : undefined), 
    d: (conditionD? 5 : undefined), 
    e: (conditionE? 5 : undefined), 
    f: (conditionF? 5 : undefined), 
    g: (conditionG? 5 : undefined), 
}; 

,但我不明白這一點......它的NodeJS不工作我想創建一個 對象許多內部對象,但如果該對象的形式發送 客戶端

回答

1

這可以通過兩種方式實現。

無論您使用的if語句每個條件屬性這樣:

var a = {}; 
    if(conditionb){ 
     a.b = 5; 
    } 

或者,如果你不想創建一個if語句每一個屬性,那麼你指定使用您所呈現的符號性質問題,然後刪除不必要的循環:

a = { 
     b: (conditionB? 5 : undefined), 
     c: (conditionC? 5 : undefined), 
     d: (conditionD? 5 : undefined), 
     e: (conditionE? 5 : undefined), 
     f: (conditionF? 5 : undefined), 
     g: (conditionG? 5 : undefined), 
    }; 
    for(var i in a){ 
     if(a[i] === undefined){ 
     delete a[i]; 
     } 
    } 
2

也許你想要什麼可以使用數組索引表示法?

a= {}; 
if(bla) a.b = "go"; 
1

試試這個:

var a = {}; 
if(conditionB) { 
    a['b'] = 5; 
} 

if(conditionB) { 
    a.b = 5; 
} 
0

你可以試試這個,

var dog = d; 

var myObject = {}; 
myObject['a']=(1<2)? 1 : 2; 
myObject['b']=(1<2)? 1 : 2; 
myObject['c']=(1<2)? 1 : 2; 
myObject[dog]=(1<2)? 1 : 2; 

萬一你是動態創建的屬性。

相關問題