【发布时间】:2021-11-04 07:04:24
【问题描述】:
我想创建一个有条件地添加成员的对象。 简单的方法是:
var a = {};
if (someCondition)
a.b = 5;
现在,我想写一个更惯用的代码。我正在尝试:
a = {
b: (someCondition? 5 : undefined)
};
但是现在,b 是 a 的成员,其值为 undefined。这不是我们想要的结果。
有没有方便的解决方案?
更新
我寻求一种可以处理有几个成员的一般情况的解决方案。
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),
};
【问题讨论】:
-
不确定是否有像 JavaScript 这样的惯用语...
-
这真的重要吗?如果您从未定义过
a.b,则检索a.b无论如何都会返回undefined。 -
@Teemu:何时使用
in运算符可能很重要。 -
@amnotiam 哎呀......这是真的,似乎我没有考虑所有方面......
-
目前没有办法在文字对象中添加条件属性,但我希望他们在 ES7 中添加它,这可能非常方便,尤其是在服务器端编程中!
标签: javascript