Javascript 应用程序脚本中的循环切换语句
我有一个由问题和答案组成的键值对对象。问这个问题有几种不同的方式,所以我尝试使用switch语句和js match函数对意思相同的问题进行分组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
{ '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