繁体   English   中英

如何仅在值不为空的情况下添加对象属性

[英]How can I add a object property only in case a value is not empty

当引用变量不为空时,我必须添加新功能来添加一些元数据。 我已经做到了,但我内心深处的某些东西在说这可以做得更简单。

async createStripeCustomer(user, refferal) {
    if (refferal) {
      return stripe.customers.create({
        email: user.email,
        metadata: {
          userId: user.id,
          referral: refferal,
        },
      });
    } else {
      return stripe.customers.create({
        email: user.email,
        metadata: {
          userId: user.id,
        },
      });
    }
  }

您可以像下面的代码一样减少重复

 async createStripeCustomer(user, refferal) { const customer = { email: user.email, metadata: { userId: user.id, }, }; if (refferal) { customer.metadata.refferal = refferal; } return stripe.customers.create(customer); }

根据 Stripe API 的记忆,元数据中的空值不会在元数据中设置该变量。

所以你可以做...

async createStripeCustomer(user, refferal) {
    return stripe.customers.create({
        email: user.email,
        metadata: {
            userId: user.id,
            referral: (refferal ? refferal : null)
        },
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM