【问题标题】:Turning array of names into email addresses将名称数组转换为电子邮件地址
【发布时间】:2018-09-21 17:25:58
【问题描述】:

我有一个名字数组。我正在使用 GmailApp 发送电子邮件,但在提取名称数组和添加域名时遇到问题。前任。

姓名=约翰
域= @gmail.com
返回 john@gmail.com

var ss = SpreadsheetApp.getActiveSpreadsheet();  
var emails = []; 
var contacts = ss.getRange('A1:A7').getValues().toString();
 for(var i in contacts){
   var conc = [contacts[i] + "@gmail.com"].concat();
   emails = emails.concat(conc);
   return(emails);
 }

【问题讨论】:

  • 删除toString()

标签: google-apps-script google-sheets gmail


【解决方案1】:

Apps 脚本有几个感兴趣的Array 方法。也就是说,Array#map 在这里有用:

const contacts = ss.getRange('A1:A7').getValues(); // 2D array
const emails = contacts.map(function (nameRow) { return nameRow[0] + "@gmail.com"; });
// Do stuff with the array of emails

如果您的域也在一个形状和大小相同但不连续的数组中:

const contacts = ss.getRange('A1:A7').getValues();
const domains = ss.getRange('ZZ1:ZZ7').getValues();
const emails = contacts.map(function (nameRow, i) { return nameRow[0] + domains[i][0]; });

【讨论】:

  • 前 2 行效果很好!如果遇到空行,是否有告诉它忽略空行?谢谢!
  • @j 绝对。可用的Array 方法之一是filter。您将首先调用它,然后在它之后链接map 调用。我会让你研究这个功能并尝试解决你的新问题,如果你仍然有问题,那么你应该提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2013-02-04
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 2011-08-11
  • 1970-01-01
相关资源
最近更新 更多