JS-开关盒内具有功能的评估

时间:2018-10-16 14:02:38

标签: javascript switch-statement

我有ID为alternative1alternative2等的对象。我想以所有相同的方式设置所有样式的样式,因此我正在尝试:

    switch (feature.id) {
      case 'marker':
           ...
        break;
      case feature.id.includes('alternative'):
      case 'connectionMarker':
        ... //add styling
        break;

这似乎不起作用。我该怎么办?

1 个答案:

答案 0 :(得分:-1)

您可以使用一个简单的技巧:

switch (feature.id) {
  case 'marker':
    ...
    break;
  case (feature.id.includes('alternative') ? feature.id : !feature.id):
    // your code here
    break;
  case 'connectionMarker':
    ...
    break;
}

由于feature.id始终是字符串值,因此!feature.id将始终返回false。因此,如果feature.id包含“替代”这一行:

case (feature.id.includes('alternative') ? feature.id : !feature.id):

成为:

case feature.id:

总是如此(如feature.id === feature.id)。否则,该行的计算结果为:

case 0:

将被解释器跳过。