Kozack
@Kozack
Thinking about a11y

Для чего нужен внешний цикл в этом фрагменте кода?

Вот цикл взятый из функции Вконтакте для парсинга смайликов
for (var i = 0; i < 2; i++) {
    for (var code in regs) {
      str = str.replace(regs[code], function(match, pre, smile, space) {
        return (pre || '') + Emoji.getEmojiHTML(code)+(space || '');
      });
    }
  }

Ссылка на файл - https://vk.com/js/al/emoji.js?233246401
Строка - 1843.

Насколько я понял, внутренний цикл проходится по объекту с регулярными выражениями и заменяет все вхождения на соответствующий код смайлика. Но для чего делать это дважды? Для чего нужен внешний цикл?
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
Предположу, что все эмодзи представляются двумя байтами.
Ответ написан
Комментировать
alsopub
@alsopub
Не знаю как это делает ВК, но в подобных задачах бывает так что после первого прохода в результате подстановок образуются новые элементы, которые можно заменить но первый цикл уже завершен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы