如果条件来自 Google 的 AdminDirectory,如何 return
How to return if condition from Google's AdminDirectory
我正在尝试 return 各个 google 工作区用户的不同结果,我面临的问题是...第一个答案正在 return 所有用户。
例如William Tell
和 John Peter
得到 Mark Thomas
的 return 即 www.google.com
期望:我想为各个用户显示答案。
我哪里错了?
function getUserID() {
var user = Session.getActiveUser().getEmail();
var name = AdminDirectory.Users.get(user).name.fullName;
if (name ="Mark Thomas") {
greeting= "www.google.com";
} else if (name ="William Tell"){
greeting = "www.msn.com";
}
} else if (name ="John Peter"){
greeting = "www.yahoo.com";
}
return greeting;
}
name ="Mark Thomas"
是一项作业,不是等效性测试。
尝试name == "Mark Thomas"
调查结果:
您需要在脚本中初始化名为 greeting
的变量。
您在 else if (name ="John Peter")
之前的行中多了一个不必要的右括号
声明。
您可以在下面测试这个经过调整的脚本:
修改后的脚本:
function getUserID() {
var user = Session.getActiveUser().getEmail();
var name = AdminDirectory.Users.get(user).name.fullName;
var greeting; //"greeting" needs to be initialized for the script to work
if(name == "Mark Thomas") {
greeting= "www.google.com";
} else if (name == "William Tell"){
greeting = "www.msn.com";
} else if (name == "John Peter"){
greeting = "www.yahoo.com";
}
return greeting;
}
测试结果:
建议:
或者,我建议您使用 Switch statement,因为您有 多个固定条件 而不是嵌套 If-Else 语句。一个 switch 语句通常比一组嵌套的 ifs 更有效。
带 Switch 语句的脚本:
function getUserID() {
var user = Session.getActiveUser().getEmail();
var name = AdminDirectory.Users.get(user).name.fullName.toString();
var greeting; //"greeting" needs to be initialized to exist & be used on the script
switch(name){
case name = "Mark Thomas":
greeting = "www.google.com";
break;
case name = "William Tell":
greeting = "www.msn.com";
break;
case name = "Admin IJG": //Added my test account's full name to see if it works
greeting = "www.yahoo.com";
break;
}
return greeting;
}
样本测试结果:
我正在尝试 return 各个 google 工作区用户的不同结果,我面临的问题是...第一个答案正在 return 所有用户。
例如William Tell
和 John Peter
得到 Mark Thomas
的 return 即 www.google.com
期望:我想为各个用户显示答案。
我哪里错了?
function getUserID() {
var user = Session.getActiveUser().getEmail();
var name = AdminDirectory.Users.get(user).name.fullName;
if (name ="Mark Thomas") {
greeting= "www.google.com";
} else if (name ="William Tell"){
greeting = "www.msn.com";
}
} else if (name ="John Peter"){
greeting = "www.yahoo.com";
}
return greeting;
}
name ="Mark Thomas"
是一项作业,不是等效性测试。
尝试name == "Mark Thomas"
调查结果:
您需要在脚本中初始化名为
greeting
的变量。您在
else if (name ="John Peter")
之前的行中多了一个不必要的右括号 声明。
您可以在下面测试这个经过调整的脚本:
修改后的脚本:
function getUserID() {
var user = Session.getActiveUser().getEmail();
var name = AdminDirectory.Users.get(user).name.fullName;
var greeting; //"greeting" needs to be initialized for the script to work
if(name == "Mark Thomas") {
greeting= "www.google.com";
} else if (name == "William Tell"){
greeting = "www.msn.com";
} else if (name == "John Peter"){
greeting = "www.yahoo.com";
}
return greeting;
}
测试结果:
建议:
或者,我建议您使用 Switch statement,因为您有 多个固定条件 而不是嵌套 If-Else 语句。一个 switch 语句通常比一组嵌套的 ifs 更有效。
带 Switch 语句的脚本:
function getUserID() {
var user = Session.getActiveUser().getEmail();
var name = AdminDirectory.Users.get(user).name.fullName.toString();
var greeting; //"greeting" needs to be initialized to exist & be used on the script
switch(name){
case name = "Mark Thomas":
greeting = "www.google.com";
break;
case name = "William Tell":
greeting = "www.msn.com";
break;
case name = "Admin IJG": //Added my test account's full name to see if it works
greeting = "www.yahoo.com";
break;
}
return greeting;
}