[英]how to conditionally create a member inside an object in javascript?
我正在stackoverflow和谷歌中尋找這樣的解決方案,但這是個主意
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中不起作用我想創建一個內部有許多對象的對象,但是如果這些對象是客戶端發送的形式
也許可以使用數組索引符號完成所需的操作?
a= {};
if(bla) a.b = "go";
嘗試這個:
var a = {};
if(conditionB) {
a['b'] = 5;
}
要么
if(conditionB) {
a.b = 5;
}
這可以通過兩種方式實現。
您可以對每個條件屬性使用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];
}
}
你可以試試看
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;
以防萬一您正在動態創建屬性。
您可以使用ES2018執行此操作:
a = {
...(conditionB? { b : 5} : {}),
...(conditionC? { c : 5} : {}),
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.