JS - Оценка с функцией внутри распределительного шкафа - PullRequest
0 голосов
/ 16 октября 2018

У меня есть объекты с идентификаторами, такими как alternative1, alternative2 и т. Д. Я хочу стилизовать их все одинаково, поэтому я пытаюсь:

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

Это не похоже на работу.Как я мог это сделать?

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете использовать простой прием:

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:

, которая будет пропущена интерпретатором.

...