我有一个对象,其中包含由问题和答案组成的键值对。提出问题的方式有几种,因此,我尝试使用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)
});
仍然没有匹配。
答案 0 :(得分:2)
您可以像这样组合开关盒:
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
}