为什么Google Apps Script中调用ContactsApp.getContacts ByEmailAdress返回[Contact]数组?
问题解答
首先修正你调用的方法名拼写问题:正确写法是ContactsApp.getContactsByEmailAddress('someemail@email.com'),原写法里的空格和拼写错误会导致调用异常。
这个方法返回的是Contact类型的数组,直接打印Contact对象默认只会输出[Contact]标识,你可以调用Contact实例的内置方法提取邮箱信息,具体用法如下:
示例代码
// 调用方法获取匹配的联系人数组 const matchedContacts = ContactsApp.getContactsByEmailAddress('someemail@email.com'); // 先判断是否有匹配结果,避免空数组报错 if (matchedContacts.length > 0) { // 取第一个匹配的联系人 const targetContact = matchedContacts[0]; // 获取该联系人绑定的所有邮箱地址,返回EmailField对象数组 const emailList = targetContact.getEmails(); // 遍历提取纯邮箱文本打印 const pureEmailList = emailList.map(emailField => emailField.getAddress()) console.log('该联系人关联的邮箱:', pureEmailList); // 如果需要精准匹配你查询时传入的邮箱,可直接筛选 const queryEmail = 'someemail@email.com'; const targetEmail = pureEmailList.find(item => item === queryEmail); if (targetEmail) { console.log('匹配到的目标邮箱:', targetEmail); } } else { console.log('未找到对应邮箱的联系人'); }
补充说明
Contact.getEmails()返回的是EmailField对象数组,调用每个EmailField实例的getAddress()方法即可拿到纯邮箱字符串- 一个联系人可以绑定多个邮箱,所以返回的邮箱数组可能包含多个值,按需筛选即可
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

