Coffeescript:是否有可能在不创建密钥的情况下有条件地声明财产?

时间:2016-04-05 15:40:54

标签: node.js coffeescript

假设我想要创建一个对象,其中某些成员并不总是存在

t = {a: 1, b: b if b}
console.log t       # { a: 1, b: undefined }

我正试图在缺少b时实现这个结果

t = {a: 1}
if b then t.b = b
console.log t       # { a: 1 }

有没有一种方法可以在不创建密钥的情况下有条件地声明b,并且没有单独的代码行?

1 个答案:

答案 0 :(得分:0)

当您需要在一个大物体上重复进行此操作时,可以这样做

t = Object.fromEntries(Object.entries(
  a: 1
  b: b
  c: 2
).filter(e=>e[1]))

如果b为假,这将过滤掉b属性。