You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Google Script的GuestStatus对象获取枚举类型值

获取Google日历EventGuest的GuestStatus枚举值

嘿,我来帮你搞定这个问题!要从GuestStatus对象里拿到具体的枚举值其实很简单,有两种实用的方式,看你需要哪种:

1. 获取易读的字符串标识

如果你想要像INVITED、MAYBE、NO、YES这类直观的状态名称,直接把GuestStatus对象转成字符串就行——你可以调用toString()方法,或者直接在字符串上下文里使用它(比如拼接日志的时候):

function getInviteeStatus(eventguest) {
  const guestName = eventguest.getName();
  const guestEmail = eventguest.getEmail();
  const guestStatusObj = eventguest.getGuestStatus();
  
  // 获取枚举的字符串标识
  const guestStatus = guestStatusObj.toString();
  
  // 示例输出:Guest John Doe (john@example.com) status: YES
  console.log(`Guest ${guestName} (${guestEmail}) status: ${guestStatus}`);
  
  return guestStatus;
}

2. 获取对应的数值编码

如果你的逻辑需要用数值来判断状态(比如INVITED对应0,MAYBE对应1,NO对应2,YES对应3),可以用valueOf()方法或者直接把对象转为数字:

function getInviteeStatus(eventguest) {
  const guestStatusObj = eventguest.getGuestStatus();
  
  // 获取枚举的数值
  const guestStatusValue = guestStatusObj.valueOf();
  // 或者用Number()转换,效果一样
  // const guestStatusValue = Number(guestStatusObj);
  
  console.log(`Guest status numerical value: ${guestStatusValue}`);
  
  return guestStatusValue;
}

额外提示:直接用枚举做条件判断

你也可以直接用GuestStatus对象和内置的枚举常量做比较,这样代码可读性更高:

function checkInviteeStatus(eventguest) {
  const guestStatusObj = eventguest.getGuestStatus();
  
  if (guestStatusObj === Calendar.GuestStatus.YES) {
    console.log("这位访客已经接受邀请啦");
  } else if (guestStatusObj === Calendar.GuestStatus.MAYBE) {
    console.log("访客还在犹豫中");
  } else if (guestStatusObj === Calendar.GuestStatus.NO) {
    console.log("访客拒绝了邀请");
  } else {
    console.log("访客还没回复");
  }
}

内容的提问来源于stack exchange,提问作者gbarnabic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:51:41