как я понимаю, вопрос вот про это
while (a = ...) {
т.е. присвоение и проверка "в одном флаконе"
Да, так можно, только строкой выше надо объявить переменную a, иначе здесь используется глобальная.
Хорошо известный всем нам пример такого кода
https://learn.javascript.ru/regexp-s...х-групп
"while ((res = re.exec(str)) != null)"