В этом примере не используйте регистр переключателя. Переключение регистров - не самый короткий способ написания кода, и часто оно побуждает вас писать избыточный код (ваш пример - «хороший пример плохого кода»).
То, что делает ваш код, могло быть написано так:
pgBool = ["TS_38", "TS_21"].indexOf(refID) > -1;
или
pgBool = refID in {"TS_38" : "", "TS_21" : ""};
(скорее всего, вы хотели бы повторно использовать массив / объект, если эта функция будет вызываться более одного раза).
Поскольку я видел, что этот ответ несколько раз подвергался сомнению, я чувствую, что он требует более подробного объяснения.
Прежде всего, почему использование хеш-таблицы предпочтительнее, чем switch-case.
Масштабируется. Если вы храните хеш-таблицу вне функции, которая должна принять решение, вам не нужно менять функцию, которая принимает решение, вы добавляете или удаляете ключ из таблицы - что более гибко и позволяет более читабельно код. Он также позволяет изменять время выполнения, что невозможно при использовании коммутатора.
Хеш-таблица называется так, потому что она хэширует ключи, гарантируя, что время доступа к значению, хранящемуся в таблице, является постоянным (и обычно очень маленьким). В то же время регистр переключения кодируется в AS3 как простая цепочка предложений if-else, что означает, что чем длиннее регистр переключения, тем больше времени потребуется функции для проверки каждого условия. Хотя switch-case дает вам определенный контроль над порядком, в котором тестируются условия, вы редко можете заранее сказать, какой из них будет срабатывать чаще. Хеш-таблица будет одинаково относиться ко всем условиям.
Это означает, что на практике никогда нет причины предпочитать switch-case хэш-таблице. Некоторые языки, например Python, даже не имеют этой конструкции по тем же причинам.