这是我的目的: 我想创建一个脚本,当您选择不同的用户组时,它会显示这些组的每个成员。此外(稍后),它将仅允许显示所有选定组中的用户。
这是我的问题: 我有一个变量,可以逐个存储我选择的组中的用户。但如果用户在两个组中,他将被存储两次。 (这个问题将在我的脚本的第二部分再次得到满足......)
这是我的代码:
function membreAssocGroupe()
{
var email = " ";
var groupes = ["bzbzabbzbza@brbrbzbaba.com","bzbzabbzbza@brbrbzbaba2.com","bzbzabbzbza@brbrbzbaba3.com"]; // this is groups i selected
//checking in "var groupes" all values that are registered.
for (var g in groupes) {
//opening the group by the e-mail and getting all the users in "var users" of the group.
var group = GroupsApp.getGroupByEmail(groupes[g]);
var users = group.getUsers();
//for all the users get in "var users", we will copy their e-mail in "var e-mail"
for (var u in users){
//if the user e-mail is already saved in "var email", go to the next user.
if(email.indexOf(u)>0)
{
continue;
}
//if the user e-mail is not saved, copy it in "var email".
else
{
email = email + users [u] .getEmail () + email.indexOf(u) + " ";
}
}
//to see what i get
var s = s + "\n" + "Group " + groupes[g] + " has " + users.length +
" members:\n " + email + "\n \n ";
}
Logger.log(s);
}
正如您现在所理解的,问题在于此部分(此操作中的所有条目都为-1):
if(email.indexOf(u)>0)
{
continue;
}
我尝试了很多东西:
if(email.toString().match(u)==u)
if(email.match(u)==u.toString())
if(email.toString().match(u.toString())==u.toString())
if(email.toString().match(u)==u.toString())
等...(这种方式适用于电子表格中的单元格,但无法使其在此处运行)
但也 findText和其他我甚至不记得的功能。
正如你所看到的(因为我解释问题的方式,以及我糟糕的代码:p),我是一个努力的新手,最后通过一点一点的学习取得成功。如果你能告诉我我应该使用的功能,以及为什么它比其他功能更好,我会非常感激。
答案 0 :(得分:0)
如果我完全理解你想要列出所有群组中的所有电子邮件,但又不想重复。
通常这必须有效:
function membreAssocGroupe(){
var emails = [];
var groupes = ["GROUP1","GROUP2"];
for(var i in groupes){
var group = groupes[i];
var users = GroupsApp.getGroupByEmail(group).getUsers();
for(var j in users){
var email = users[j].getEmail();
if(emails.indexOf(email) < 0){
emails.push(email);
}
}
}
Logger.log(emails.join(","));
}
为简化管理,我使用电子邮件标签,但通过联接,您可以轻松获得字符串。
答案 1 :(得分:0)
确实有效。
我想我开始理解indexOf()。该函数是否尝试在数组中查找值,如果没有查找则返回-1,如果找到索引号,则返回
我是法语(不习惯英语术语),而且未经实验,所以我有时会误解事物。^^。
无论如何,我的问题已经解决了。谢谢你的队友!
编辑:顺便说一句,正如您已经了解的那样,您说得对,我想复制所有用户&#39;电子邮件地址,没有重复。但也是同时在所有群体中唯一的地址(但是使用你的解决方案,这现在是时间问题)。