Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 应用程序脚本中的循环切换语句_Javascript_Google Apps Script - Fatal编程技术网

Javascript 应用程序脚本中的循环切换语句

Javascript 应用程序脚本中的循环切换语句,javascript,google-apps-script,Javascript,Google Apps Script,我有一个由问题和答案组成的键值对对象。问这个问题有几种不同的方式,所以我尝试使用switch语句和js match函数对意思相同的问题进行分组 { 'Name?' : 'bob', q2: a2, .......} 我想循环遍历对象,并找到数组元素和对象键之间的部分匹配。到目前为止,我已经: switch (/terms/.test(key)) { case ( terms ="Name|What's Your Name?"): text = "matched"; bre

我有一个由问题和答案组成的键值对对象。问这个问题有几种不同的方式,所以我尝试使用switch语句和js match函数对意思相同的问题进行分组

{ 'Name?' : 'bob', q2: a2, .......}
我想循环遍历对象,并找到数组元素和对象键之间的部分匹配。到目前为止,我已经:

switch (/terms/.test(key)) {

  case ( terms ="Name|What's Your Name?"):
    text = "matched";
    break;

  default:
    text = "default";
    Logger.log(key);

}

        Logger.log(text)




  });
部分输出显示:

18-10-09 15:37:41:415 EDT] *What's Your Name?* 
[18-10-09 15:37:41:416 EDT] default
显然,比赛没有发生。我怎样才能让它工作

编辑:

我将代码更改为:

Object.keys(obj).forEach(function(key) {

switch (true) {

     case (/^Name|term2$/.test(key)):         
    text = "MATCHED!!!!";
    break;
  case 0:
  case 6:
    //        text = "It is Weekend";
    break;
  default:
    text = "default";
    Logger.log(key);

}

        Logger.log(text)


  });

仍然不匹配。

您可以像这样组合开关箱:

switch (key) {
  case 'Name':
  case 'What\'s Your Name?':
    // Do something
    break;

  default:
    // Do something
}
此代码相当于:

if (key === 'Name' || key === 'What\'s Your Name?') {
  // Do something
} else {
 // Do something
}

您可以这样组合开关箱:

switch (key) {
  case 'Name':
  case 'What\'s Your Name?':
    // Do something
    break;

  default:
    // Do something
}
此代码相当于:

if (key === 'Name' || key === 'What\'s Your Name?') {
  // Do something
} else {
 // Do something
}

如果我想在部分匹配的基础上执行该操作,该怎么办?如果我理解正确,我可以使用.match检查key的子字符串(如果key很长)--@user61629是的,可以,但不需要。我答案中的代码应该对你有帮助。您不需要在密钥中搜索任何子字符串。您在这种情况下是正确的,因此我将接受您的答案(谢谢)。但对于另一种情况,我仍然有兴趣知道如何在一个键中搜索多个子字符串。@user61629执行此操作的选项很少,但我建议使用Array.prototype.includes:
['term1','term2'].includes(字符串)
如果字符串等于数组中的一个项,它将返回true如果我想在部分匹配的基础上执行该操作,则返回true。如果我理解正确,我可以使用.match检查键的子字符串(如果键很长)--@user61629可以,但不需要。我答案中的代码应该对你有帮助。您不需要在密钥中搜索任何子字符串。您在这种情况下是正确的,因此我将接受您的答案(谢谢)。但对于不同的情况,我仍然有兴趣知道如何在一个键中搜索多个子字符串。@user61629执行此操作的选项很少,但我建议使用Array.prototype.includes:
['term1','term2'].includes(string)
如果string等于数组中的一个词,则返回true